【发布时间】:2017-10-12 15:24:37
【问题描述】:
首先,我使用的是 Struts 2 和 Java。我正在尝试让我的 LoginUser Action 类将信息传递给 UserBean Java Bean。
当LoginUser Action 执行时,fullName 的 bean 值通过<s:property> 标签从userBean 调用来显示。
但是当我点击success.jsp中的More Info链接时,下面的页面也会通过<s:property>标签调用bean值fullName,但这次是null,如果我返回success.jsp 也是null。
我的问题:
为什么 bean 没有按预期保留信息?
技术说明:我正在使用 Eclipse IDE 作为 Maven 项目进行开发,并且只有 Apache Tomcat 7 可用于测试/部署。
来自 JAVA 和 JSP 文件的代码:
LoginUser行动:
package test.Home1;
@SuppressWarnings("unused")
public class LoginUser {
private String username = "";
private String password = "";
private String userOK = "admin";
private String passOK = "admin";
// Password getters/setters
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
// Username getters/setters
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
// Bean is instantiated here
private UserBean userBean = new UserBean();
// userBean getters/setters
public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}
public UserBean getUserBean() {
return userBean;
}
// Execute the following action when this class is called via struts action
public String execute() {
if (this.username.equalsIgnoreCase(userOK) && this.password.equals(passOK)) {
userBean.setAccessLevel("full");
userBean.setFullName("Administrator");
userBean.setUserName(username);
return "SUCCESS";
}
else {
return "FAIL";
}
}
}
UserBeanBEAN:
package Test.Home1;
public class UserBean {
private String userName;
private String password;
private String fullName;
private String accessLevel;
private boolean LoggedIn = false;
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 getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getAccessLevel() {
return accessLevel;
}
public void setAccessLevel(String accessLevel) {
this.accessLevel = accessLevel;
}
public boolean isLoggedIn() {
return LoggedIn;
}
public void setLoggedIn(boolean loggedIn) {
LoggedIn = loggedIn;
}
}
login.jspJSP表单登录页面:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>
Hello World at Home (Struts 2 Tutorial)
</title>
</head>
<body style="font-family: Arial;">
<h1>Please Log in</h1>
<s:form action="LoginUser" autocomplete="off">
<s:textfield name="username" label="Username"/>
<s:password name="password" label="Password"/>
<s:submit/>
</s:form>
</body>
</html>
success.jspJSP登录成功页面:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>
Hello World at Home (Struts 2 Tutorial) - LOGGED IN
</title>
</head>
<body style="font-family: Arial;">
<h1>Struts 2 Hello World Example</h1>
<h4>Hello <s:property value="userBean.fullName" />
</h4>
<br><br>
<s:a value="Info">More Info</s:a>
</body>
</html>
moreInfo.jspJSP 文件:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>
Hello World at Home (Struts 2 Tutorial) - LOGGED IN
</title>
</head>
<body style="font-family: Arial;">
<h1>Are you still there <s:property value="userBean.fullName" />?</h1>
<h4>Can you still see your name above?</h4>
<br><br>
<s:a value="Home">Home</s:a>
</body>
</html>
【问题讨论】:
标签: jsp null struts2 javabeans ognl