`
djob2008
  • 浏览: 127388 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts2动态方法调用

阅读更多

2009-03-30 17:30:37

一个页面两个按钮,各自作出不同的处理,利用struts2的动态方法调用可以方便地做到这点:

 

输入页面

 

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<html>
<head>

</head>

<body>
<script language="JavaScript" type="text/javascript">
function regist(){
targetForm = document.forms[0];
//第一种方法,利用Action!methiod
//targetForm.action="Login!regist";
//第二种方法,直接修改action名,修改相应的struts.xml:
//形式1:<action name="Regist" class="com.test.action.PointAction" method="regist"><result...../>...
//形式2:为了减少冗余,采用形式<action name="*Action" class="com.test.action.PointAction" method="{1}">
//但采用形式2,Action类里面不再含有execute()方法,而是分为Login()和Regist()方法


targetForm.action="RegistAction.action";

targetForm.submit();
}
</script>

<h3>
<font color="red">使用逗号将坐标分开</font>
</h3>
<s:form action="LoginAction">
<s:textfield name="point" label="point" />
<s:textfield name="username" label="username" />
<s:textfield name="age" label="age" />
<s:textfield name="date" label="birthday" />

<s:submit label="submit" />

<!-- 第三种方法,直接指定method <s:submit label="注册" method="regist"/> -->

<input type="button" value="注册" onClick="regist();" />

</s:form>
</body>
</html>

 

 

 

struts.xml文件:

 

 

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<package name="conveter" extends="struts-default">
<action name="Login" class="com.test.action.PointAction">
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
<action name="Regist" class="com.test.action.PointAction>
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>

 

 

 

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="conveter" extends="struts-default">
<action name="*Action" class="com.test.action.PointAction" method="{1}">
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>

 

 

action类:根据方法不同的方法需修改相应代码

 

 

package com.test.action;

import java.util.Date;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.test.bean.Point;

public class PointAction extends ActionSupport {
.......

....................

......................

 

public String Regist() throws Exception {
ActionContext.getContext().getSession().put("user", getUsername());
setTip("恭喜您," + getUsername() + ",您已经注册成功!");
return SUCCESS;
}

 

 

@Override
public String execute() throws Exception {
ActionContext ctx = ActionContext.getContext();
Integer counter = (Integer) ctx.getApplication().get("counter");
if (counter == null) {
counter = 1;
} else {
counter += 1;

}
ctx.getApplication().put("counter", counter);
ctx.getSession().put("username", getUsername());
if (getUsername().equals("scott")) {
ctx.put("tip", "登陆成功" + counter + "times");
return SUCCESS;
} else {
ctx.put("tip", "登陆失败" + counter + "times");
return ERROR;
}

}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics