action的使用

作者在 2010-04-02 17:54:47 发布以下内容

问题的产生:Action中可以有多个方法,jsp页面提交时到底匹配哪一个方法

解决的方法:3

动态方法

  1 方式:直接在japaction属性中指出

  2 格式:action的名字!方法名

  3 例如:

login.jsp

<s:form action="UserAction!login.action">

       用户名:<s:textfield name="username"></s:textfield>

       密码:<s:password name="pwd"></s:password>

       <s:submit></s:submit>

</s:form>

Register.jsp

    <s:form action="UserAction!register">

       <s:submit></s:submit>

    </s:form>

  </body>

method方法

  1 方式:直接修改struts.xml文件,action标签添加method属性,同时修改name属性,使它指向Action中不同的方法

  2 注意:struts.xml文件action的名字不能一样

  3 每一个方法都在struts.xml对应一个action标签

  4 例如:

Login.jsp

  <s:form action="login.action">  

       用户名:<s:textfield name="username"></s:textfield>

       密码:<s:password name="pwd"></s:password>

       <s:submit></s:submit>

    </s:form>

Register.jsp

   <s:form action="register.action">

       <s:submit></s:submit>

    </s:form>

Struts.xml

<struts>

     <include file="struts-default.xml" />

     <package name="com" extends="struts-default">

         <action name="login" class="com.action.UserAction" method="login">

             <result name="loginSucc">/register.jsp</result>

             <result name="login">/login.jsp</result>

         </action>

         <action name="register" class="com.action.UserAction" method="register">

             <result name="registerSucc">/success.jsp</result>

         </action>

     </package>

 </struts>

  5 缺陷:导致struts.xml文件非常之大

通配符*

  1 方式:采用*代替方法名 修改struts.xml

  2 一般情况下:一个Action类在struts.xml文件中对应一个action标签

  3 例如:

Login.jsp

   <s:form action="loginUserAction.action">  //方法名Action类名

       用户名:<s:textfield name="username"></s:textfield>

       密码:<s:password name="pwd"></s:password>

       <s:submit></s:submit>

    </s:form>

Register.jsp

   <s:form action="registerUserAction">

       <s:submit></s:submit>

    </s:form>

Struts.xml

<struts>

     <include file="struts-default.xml" />

     <package name="com" extends="struts-default">

         <action name="*UserAction" class="com.action.UserAction" method="{1}">

             <result name="loginSucc">/register.jsp</result>

             <result name="login">/login.jsp</result>

             <result name="registerSucc">/success.jsp</result>

         </action>

     </package>

 </struts>

ActionContext

  1 用处:ActionContext用来产生Servlet中的各种参数

  2 用法:

   ActionContext  ac=ActionContext.getContext();

     ac.getParameters():  返回一个request参数

     ac.getSerssion();  返回一个session参数

     ac.getApplication()  返回一个application参数

  3 例如:

    UserAction.java

package com.action;

 

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

 

public class UserAction extends ActionSupport{

    private String username;

    private String pwd;

    public String getUsername() {

       return username;

    }

    public void setUsername(String username) {

       this.username = username;

    }

    public String getPwd() {

      

默认分类 | 阅读 960 次
文章评论,共0条
游客请输入验证码