假设我有一个登录表单作为index.jsp
<h:form action="LoginAction" >
<h:textfield name="user" label="Login ID" /></br>
<h:password name="password" label="Password"/></br>
<h:submit value="LOGIN"/>
</h:form>
这是 LoginAction.java
package action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import dao.DBService;
import entity.Student;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.SessionMap;
public class LoginAction extends ActionSupport {
HttpServletRequest req;
private String user;
private String password;
Map <String,Object> session;
public void setSession(Map<String, Object> session) {
this.session = session;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean validat() throws SQLException
{
String query;
query="select * from student where user='"+user+"' and password='"+password+"'";
ResultSet rs;
rs=DBService.selectData(query);
boolean status=rs.next();
return status;
}
public String execute() throws Exception {
if(validat())
{
return SUCCESS;
}
return ERROR;
}
public void setServletRequest(HttpServletRequest hsr) {
req = hsr;
}
}
这是student.java
package entity;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Student {
private String name;
private String user;
private String password;
private String number;
private String country;
private String email;
private String city;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Id
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
现在我们有一个 jsp 作为 Profile.jsp 在这个页面中我想显示已登录的学生的所有信息
实现此目的的一种方法是使用 '#session.context' ,但我只能将其用于用户和密码。如何使用 session 访问该特定学生数据库中的所有数据。
最佳答案
当您在 ResultSet rs 中获得结果后,您现在可以访问数据库属性。 就像如果您有属性“角色”,您可以通过以下方式访问它
String r=rs.getString("role");
以及在 session 中使用
session = ActionContext.getContext().getSession();
session.put("z",r) // value of string r in z
并在您的个人资料文件中使用
访问此角色"#session.z"
关于java - struts 2中使用session访问实体bean数据的标准流程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24797095/