struts基础

来源:互联网 发布:二个字 网络语言大全 编辑:程序博客网 时间:2024/05/17 07:33

一, 搭建环境

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  

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击