Struts2 Action动态方法调用问题
刚接触Struts2,做个简单的程序,希望点击登入时使用execute方法,点击注册按钮时调用regist方法,然而使用login!regist注册按钮无法调用regist方法。希望有人能指点一下。
login.jsp代码
Action代码
struts.xml代码
login.jsp代码
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><s:text name="loginPage"/></title>
</head>
<body>
<s:form action="login" method="POST" >
<s:textfield name="username" key="user"/>
<s:textfield name="password" key="pass"/>
<s:submit value="登入"/>
<input type="submit" value="注册" onclick="regist();"/>
</s:form >
<script type="javascript">
function regist(){
targetForm=document.forms[0];
targetForm.action="login!regist";
}
</script>
</body>
</html>
Action代码
package lee;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
* Created by Administrator on 2017/4/25 0025.
*/
public class LoginAction 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;
}
public String regist() throws Exception{
ActionContext actionContext=ActionContext.getContext();
actionContext.getSession().put("username",getUsername());
actionContext.put("tip","恭喜你"+getUsername()+"。注册成功!");
return SUCCESS;
}
@Override
public String execute() throws Exception {
if (getUsername().equals("xiao")
&getPassword().equals("123456")){
ActionContext.getContext().getSession().put("user",getUsername());
return SUCCESS;
}
else {
return ERROR;
}
}
}struts.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="mess"/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="lee" extends="struts-default" namespace="/">
<action name="login" class="lee.LoginAction" >
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
<action name="login2" class="lee.LoginAction2" >
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
...全文
相关推荐
用js模拟struts2的多action调用示例
最近修了几个struts2.1升级到2.3后动态方法调用失效的bug,深有感悟, 但是我那种原始方法有一个局限,就是在submit那里写下的action不起作用,就算启动了动态方法调用也不行(我想应该是struts2.3的一个bug),所以为了完善这个功能,这里我再说一个用js的方法。 在<s value=”提交” xss=removed>,添加onclick方法,然后再在js里面写上: 代码如下: function submitAction(actionName){ document.form的name.acti
struts2 动态方法调用(DMI)
NULL 博文链接:https://cdxs2.iteye.com/blog/1925232
Struts2动态方法调用
Struts2动态方法调用 包括 1.js方法调用 2.普通的表单提交调用 3.通配符
Struts2 动态方法调用(十三)
NULL 博文链接:https://takeme.iteye.com/blog/1631525
struts2.5+框架使用通配符与动态方法常见问题小结
主要介绍了struts2.5+框架使用通配符与动态方法常见问题 ,在文中给大家提到了Struts2.5框架使用通配符指定方法 ,需要的朋友可以参考下


