您的位置:首页 > 编程语言 > Java开发

第二天:使用struts2开发用户的增删改查

2013-12-25 13:07 295 查看

一、开发步骤:

1、确定包的命名和使用规则

com.sxt.dao   连接数据的底层类   以及接口类(主要是对数据库中的表有哪些操作)

com.sxt.dao.impl   接口dao接口类的实现类 (编写具体的方法,对数据中的表进行操作)

com.sxt.service    业务类的接口类(主要书写一些业务的方法,但是没有具体的实现)

com.sxt.service.impl    业务类接口的实现类(主要对接口的方法进行具体的实现)

com.sxt.util  工具类(编写一些常用的工具方法)

com.sxt.test  测试类(测试程序是否存在错误)

com.sxt.action 核心控制器类

2、配置xml文件

<filter>

<filter-name>struts</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

   3、编写代码

   3.0、编写实体类

   3.1、编写数据库底层类 、以及接口类

   3.2、数据库接口实现类

   3.3、业务接口类以及业务接口类实现类

   3.4、编写action控制器类

   3.5、编写jsp界面

   4、配置struts文件(重点)

   解决问题:怎样从一个action跳转到另外一个action

<result name="success" type="redirectAction"(result中配置属性 type 值为 redirectAction--跳转到另一个action)>list(action属性name 的值)</result>

   5、页面对数据的处理(重点)

   解决问题:怎样养表单中的数据封装成一个对象  <input type="password" name="user.userpass"(使用user.userpass 直接把值赋到实体类中的userpass上) value="${user.userpass}"/>

(user代表action中的属性,只不过是一个对象) 如下:

private Userinfo(实体类) user;

private List<Userinfo> list;

   二、知识点:

   1、包含多个配置文件:

   在struts.xml文件下使用标签<include file="配置文件路径"></include>

   主要目的地避免struts.xml文件的配置过多,出现臃肿,难于维护;分模块配置不同的业务,便于维护。

   2、使用动态方法调用指定的方法:

   当同一个action类中包含多个方法时候,在struts配置了多个action时,可以使用动态方法调用,减少action的配置。

   调用格式  (action属性name的值)!方法名.action   如下

    <a href="list!UserList.action"> 显示用户列表(方法动态调用)</a>

   注意:此方法不建议使用

   3、使用通配调用指定的action方法

   当同一个action类中包含多个方法时候,在struts配置了多个action时,可以使用动态方法调用,减少action的配置。

   调用格式  :

<a href="user-UserList.action"> 显示用户列表(使用通配符)</a><br/>

<action name="user-*" class="com.sxt.action.UserinfoAction" method="{1}">

说明:action中name的值为 user-* ,method的值为{1} 指明匹配所有以 user- 开头的名字

user-addList.action、user-addUpdate.action、user-addDelete.action 都能匹配

之后method的值就为匹配的值,二匹配的值又是action中的方法名,从而实现方法的指定调用。

method的值可以为{1}、{1,2}、{1,3}、{3} 表明匹那个通配符和几个通配符

   4、结果视图:

   全局结果视图的配置:(理解成全局变量)

<global-results>

<!-- 使得所有的结果都能用 -->

<result name="success" type="redirectAction">list</result>

</global-results>

5、<result name="" type=""/>相关配置  type的值如下:

常用:

         dispatcher:页面之间的请求转发

redirect:页面之间的重定向

redirectAction:action之间的重定向

chain:action之间的请求转发

freemarker:页面静态化

xslt:生成excel

stream:上传下载

    6、struts.xml常量配置:

指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法

<constant name="struts.i18n.encoding" value="UTF-8"/>

该属性指定需要Struts 2处理的请求后缀,如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。

<constant name="struts.action.extension" value="do"/>

设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭

<constant name="struts.serve.static.browserCache" value="false"/>

当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开

<constant name="struts.configuration.xml.reload" value="true"/>

开发模式下使用,这样可以打印出更详细的错误信息

<constant name="struts.devMode" value="true" />

默认的视图主题 -->

<constant name="struts.ui.theme" value="simple" />

与spring集成时,指定由spring负责action对象的创建

<constant name="struts.objectFactory" value="spring" />

该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

        7、struts 中 action:

         7.1、编写一个普通类

         7.2、实现Action接口

         7.3、继承ActionSupper类

        8、获取Servlet API:

        8.1、直接通过方法  ServletActionContext获取相应的对象  

         ServletActionContext.getRequest()、ServletActionContext.getResponse()、、、

        8.2、实现接口 ServletRequestAware、ServletResponseAware、SessionAware  获得

         定义成员变量,就不需要每次使用创建

       private HttpServletRequest request;

private HttpServletResponse response;

private Map<String,Object> session;<特殊> session对象虽然类型是Map集合 ,只需要当成session来用,存数据用session.put();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐