struts2中多个逻辑action(方法)的动态调用
2013-04-15 08:51
323 查看
Struts2可以实现在同一个action中通过多个方法实现在配置文件中配置出多个逻辑的action,通过在js中给各个button添加onclick方法调用实现提交到不同的action。可以实现多个按钮的动态提交。并且可以通过在action中设置参数属性在struts.xml文件中的result中配置表达式来动态跳转到不同的逻辑视图
package com.inspur.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String target;
private String tip;
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getTip() {
return tip;
}
public void setTip(String tip) {
this.tip = tip;
}
public String login(){
if(this.getUsername().equals("lzhq")&&this.getPassword().equals("123")){
ActionContext actionContext=ActionContext.getContext();
Map session=actionContext.getSession();
session.put("user", this.getUsername());
return SUCCESS;
}else
return ERROR;
}
public String direct(){
if(this.getTarget().equals("welcome"))
return SUCCESS;
else
return ERROR;
}
}
在struts.xml文件中通过属性 值在result中配置表达式实现动态跳转
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="demo2" extends="struts-default" namespace="/">
<action name="login" class="com.inspur.action.MyAction" method="login">
<result name="success">/success.jsp</result>
<result name="error">/loginFail.jsp</result>
</action>
<action name="direct" class="com.inspur.action.MyAction" method="direct">
<result name="success">/${target}.jsp</result>
<result name="error">/directFault.jsp</result>
</action>
</package>
</struts>
package com.inspur.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String target;
private String tip;
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getTip() {
return tip;
}
public void setTip(String tip) {
this.tip = tip;
}
public String login(){
if(this.getUsername().equals("lzhq")&&this.getPassword().equals("123")){
ActionContext actionContext=ActionContext.getContext();
Map session=actionContext.getSession();
session.put("user", this.getUsername());
return SUCCESS;
}else
return ERROR;
}
public String direct(){
if(this.getTarget().equals("welcome"))
return SUCCESS;
else
return ERROR;
}
}
在struts.xml文件中通过属性 值在result中配置表达式实现动态跳转
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="demo2" extends="struts-default" namespace="/">
<action name="login" class="com.inspur.action.MyAction" method="login">
<result name="success">/success.jsp</result>
<result name="error">/loginFail.jsp</result>
</action>
<action name="direct" class="com.inspur.action.MyAction" method="direct">
<result name="success">/${target}.jsp</result>
<result name="error">/directFault.jsp</result>
</action>
</package>
</struts>
相关文章推荐
- 使用<a>标签调用struts2的action、传递动态参数、以及参数中出现加号等特殊字符的处理方法
- struts2动态方法调用和使用通配符定义action
- Struts2中Action的动态调用方法
- Struts2之动态方法调用(优点:调用同一个action中的多个方法不需要在配置文件中写多个指向相同action类的的action节点只需要一个action节点就行)
- struts2 动态调用action中方法
- 每当使用struts2动态方法调用时,总是出现错误:There is no Action mapped for namespace [/user] and action name [user!add]
- struts2:动态方法调用与通配符定义action
- 使用Struts2动态方法调用时(DMI)出现There is no Action mapped for namespace [/user] and action name [user!add] 问题
- 【Struts2学习笔记(6)】Action动态方法调用
- Struts2中Action的动态方法调用
- Struts2基础之四:动态方法调用(DMI)和action通配符
- struts2_7_Action类中方法的动态调用
- S4.2_Struts2_ActionAdvance 在url地址中动态调用action方法
- 复习Struts2之Action动态方法调用
- Struts2的动态调用action方法
- struts2学习笔记--------动态方法调用和使用通配符定义action
- Struts2 Action中动态方法调用、通配符的使用
- Struts2初学者---动态方法调用action!方法名报错
- Struts2一个action包含多个处理逻辑解决方法(动态方法调用)
- struts2中动态方法调用和使用通配符定义Action