我正在做这个初学者Struts2 登录教程
并且我得到了它的工作,除了,当登录页面被访问时,它不会首先找到标签的属性。所以而不是:
我得到登录页面:
和错误页面:
但是,当登录成功时,它会使用简单的属性标签找到属性<s:property value="username" />
我在这里俯瞰什么?
登录.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Struts 2 - Login Application</title>
</head>
<body>
<h2>Struts 2 - Login Application</h2>
<s:actionerror />
<s:form action="login.action" method="post">
<s:textfield name="username" key="label.username" size="20" />
<s:password name="password" key="label.password" size="20" />
<s:submit method="authenticate" key="label.login" align="center" />
</s:form>
</body>
</html>
Welcome.jsp(登录成功时)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h2>Howdy, <s:property value="username" />...!</h2>
</body>
</html>
struts.xml 包含的 login.xml
<?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>
<constant name="struts.custom.i18n.resources"
value="Credentials" />
<package name="Login" namespace="/login" extends="struts-default">
<action name="login"
method ="authenticate"
class="Login.LoginAction">
<result name="success">/login/Welcome.jsp</result>
<result name="error">/login/Login.jsp</result>
</action>
</package>
</struts>
登录动作类:
package Login;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
public String authenticate() {
if (this.username.equals("admin")
&& this.password.equals("admin123")) {
return "success";
} else {
addActionError(getText("error.login"));
return "error";
}
}
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;
}
}
属性文件 Credentials.properties
label.username= Username
label.password= Password
label.login= Login
error.login= Invalid Username/Password. Please try again.
文件结构: