25,980
社区成员
发帖
与我相关
我的任务
分享package chapter8;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.Action;
public class LoginRegisterAction implements Action{
private String username;
private String password;
private HttpServletRequest request;
private static Map<String, String> users = new HashMap<String, String>();
public String register() throws Exception{
request.setAttribute("info", "您已经注册成功!");
return SUCCESS;
}
public String login() throws Exception{
try{
if(getUsername().equals("bill") && getPassword().equals("1234")){
request.setAttribute("info", "登陆成功");
return SUCCESS;
}else{
request.setAttribute("info", "登录失败");
return ERROR;
}
}catch(Exception e){
return ERROR;
}
}
public String execute() throws Exception{
return SUCCESS;
}
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 void setRequest(HttpServletRequest request) {
this.request = request;
}
}
<?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="struts2" extends="struts-default" namespace="/myspace">
<action name="*Action" class="chapter8.LoginRegisterAction" method="{1}">
<result name="success">/chapter8/success.jsp</result>
<result name="error">/chapter8/error.jsp</result>
</action>
</package>
</struts><%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<script type="text/javascript">
function login(){
alert("登陆");
form.action = "/loginAction.action";
alert(form.action);
form.submit();
}
function register(){
alert("注册");
form.action = "registerAction";
form.submit();
}
</script>
<s:form name="form" theme="simple" namespace="/myspace">
用户:<s:textfield name="username" /><p />
密码:<s:textfield name="password" /><p />
<s:submit value="登陆" onclick="login()" />
<s:submit value="注册" onclick="register()" />
</s:form>
</body>
</html>

<action name="loginAction" class="chapter8.LoginRegisterAction" method="register">
<action name="registerAction" class="chapter8.LoginRegisterAction" method="register">
问题解决了,使用通配符之前,先将请求的action都不用通配符,分别都请求一次之后,再改成通配符形式,就没问题了。
但是不知道具体原因是什么?