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

struts基础

2016-09-08 19:36 176 查看
一, 搭建环境
1, 引入包
  直接拖到lib中 
  build path引入包, 注意添加到deploymentassembly中 
 
2, 添加前端控制器, 中心控制器 web.xml , 一个过滤器
3, 添加struts.xml
<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPEstruts PUBLIC
     "-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"
     "http://struts.apache.org/dtds/struts-2.3.dtd">
 
<struts>
 
     <constantname="struts.enable.DynamicMethodInvocation" value="false"/>
     <constantname="struts.devMode" value="true" />
 
     <package name="default"namespace="/" extends="struts-default">
 
         <actionname="userLogin"class="com.chinasofti.action.UserLoginAction"
              method="login">
              <resultname="success">success.jsp</result>
              <resultname="failed">failed.jsp</result>
         </action>
     </package>
</struts>
 
4,添加一个Action , 可以是一个普通的java类
 
  http://localhost:8888/day1-hellostruts/userLogin.action  
/userLogin.action
 
/代表命名空间
userLogin.action action名称为userLogin-->
<actionname="userLogin"class="com.chinasofti.action.UserLoginAction"
           method="login">
           <resultname="success">success.jsp</result>
           <resultname="failed">failed.jsp</result>
       </action>
 
 
二,Action 
1, 如何创建 
普通的JAVA类
实现接口Action,重写execute方法
继承ActionSupport(现实开发中用这个)
可以使用struts框架提供的功能, 如:验证框架, 国际化。。。
 
当action配置中没有指定class时, 默认执行ActionSupport中的execute方法, 返回success
 
2, 作用
控制器: 中心控制器(web.xml中配置的StrutsPrepareAndExecuteFilter), 业务控制器(action) 
Action业务控制器作用:
控制业务流程,调用真正业务处理层service
返回一个结果字符串,由中心控制器协调跳转
方法处理参数
 
 
3, 如何接收参数
用Action属性  (常用之一)
属性名要跟表单元素名称一致  
提供setter, getter方法  
 
用javabean(最常用的)
      bean一定要有一个无参构建器, struts会自动构建对象
里面的属性必须提供  setter, getter方法
前台页面表单元素命名使用: entity.属性名   假设BEAN变量名称为entity  
通过拦截器注入参数的  
 
Action实现ModelDriver接口, 重写getModel() 方法
在方法中,实例化实体类, 提供属性, 不需setter, getter(了解就好)
 
 
 
4, method 
一个Action可以有多个业务方法,会在struts.xml配置多个action
可以使用通配符   *  
 
         <!-- user_login 调用下面这个action中的login方法 user_register 调用下面这个action中的register方法
通过配置多个不同的result作为不同的方法的处理结果页面 
-->
         <action name="user_*"class="com.chinasofti.house.controller.UserAction"method="{1}">
              <result name="success">houselist.do</result>
              <resultname="failed">register.jsp</result>
              <resultname="register">login.jsp</result>
         </action>
 
5, 动态方法调用
DMI-- Dynamic Method Invocation
只需要配置一个action,里面有多个方法  
启用动态调用--常量进行配置, 所有常量在struts2-core-xxx-jar 包中的org-apache-struts2 下面的default.properties文件中  

   struts.enable.DynamicMethodInvocation = true    
action映射名称!方法名.action   调用: user!login.action   user!register.action  
 
 
 
 
 
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: