java - struts 2中使用session访问实体bean数据的标准流程是什么?

标签 java hibernate jsp struts2

假设我有一个登录表单作为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/

相关文章:

java - 按需初始化 holder 习语的正确实现

java - Hibernate抛出org.hibernate.service.spi.ServiceException

java - 使用 Hibernate 转换时间戳日期 MyDate 类

java - 我尝试过 stackoverflow 上的所有答案,但失败了

java - HashMap Entry 类的 recordAccess() 方法为空体

java - 在finally block 中处理异常

Java InputStream 阻塞读取

mysql - FindByUUID() 使用 Spring Data 的 JPA 存储库

java - 在返回响应之前获取 servlet 请求的状态

javascript - 使用户能够发布数据并使其出现在我的网站中