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

struts2.0 Action

2013-01-10 15:52 239 查看
按照之前所讲的,我们会写很多的Action,在实际开发中会显得非常麻烦,所以下面介绍一下

(一)

动态方法调用

作用:减少Action数量

使用:actionName!methodName.action

禁用:将属性struts.enable.DynamicMethodInvocation设置为false

代码贴下来

UserAction:

package com.mynews.action;

import com.mynews.entity.Users;

import com.mynews.service.LoginService;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

/**

*

*/

private static final long serialVersionUID = 1L;

private Users user;

public Users getUser() {

return user;

}

public void setUser(Users user) {

this.user = user;

}

private LoginService ls=new LoginService();

public String doLogin(){

Users myuser = ls.login(user);

if (myuser != null) {return "login_success";}

else{super.addActionError("用户名或密码错误");

return "login_input";}

}

public String doReg(){

int ret=1;

if(ret==1)return "reg_success";

return "reg_input";

}

}

login.jsp

<s:actionerror/>

<form action="/mynews/userAction!doLogin.action" method="post">

用户名:<input type="text" name="user.uname"/><br/>

密    码:<input type="password" name="user.upass"/><br/>

<input type="submit" value="登录"/><input type="reset" value="重置"/>

</form>

</body>

register.jsp

<s:form action="userAction!doReg" namespace="/" method="post">

用户名:<s:textfield name="user.uname"></s:textfield><s:fielderror fieldName="uname_error" /><br/>

密码:<s:password name="user.upass"></s:password><s:fielderror fieldName="upass_error" /><br/>

出生日期:<s:textfield name="user.birthday"></s:textfield><br/>

<s:submit value="提交" />

</s:form>

struts.xml

<action name="userAction" class="com.mynews.action.UserAction">

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

<result name="login_success">/ch01/main.jsp</result>

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

<result name="reg_input">/ch01/register.jsp</result>

</action>

(二)

method属性

结合通配符(*)的使用

<form action="/mynews/doLogin_user" method="post">

用户名:<input type="text" name="user.uname"/><s:fielderror fieldName="uname_error"/><br/>

密    码:<input type="password" name="user.upass"/><s:fielderror fieldName="upass_error"/><br/>

<input type="submit" value="登录"/><input type="reset" value="重置"/>

</form>

<s:form action="doReg_user" namespace="/" method="post">

用户名:<s:textfield name="user.uname"></s:textfield><s:fielderror fieldName="uname_error" /><br/>

密码:<s:password name="user.upass"></s:password><s:fielderror fieldName="upass_error" /><br/>

出生日期:<s:textfield name="user.birthday"></s:textfield><br/>

<s:submit value="提交" />

</s:form>

strut.xml文件

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

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

<result name="login_success">/ch01/main.jsp</result>

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

<result name="reg_input">/ch01/register.jsp</result>

</action>

默认的错误处理页面的设置:

<package name="default" namespace="/" extends="struts-default" >

<default-action-ref name="defaultAction"></default-action-ref>

<action name="defaultAction">

<result>/ch01/404.jsp</result>

</action>

</package>

struts2常量配置

struts.devMode

作用:输出很多有用的日志

struts.configuration.xml.reload

每次执行action的时候重新加载相关配置文件

struts.il8n.reload

Result配置

常用结果类型

dispatcher:请求转发

redirect:重定向

chain:从一个Action跳到另一个Action

redirectAction:从一个Action跳到另一个Action
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: