webwork开发过程中,获取session中的信息需要实现SessionAware,若session中使用pojo类存放用户信息,需要在Action类中进行处理才能获取用户信息。可以通过下面的方法,简化session信息的获取,并实现灵活的session信息组合。
/**
* 存放用户session信息POJO类
* @version 1.0
*/
public class UserInfo {
private int webID; // 帐号ID
private int userID; // 用户身份ID
private String realName; // 用户姓名
private List permission; // 权限列表
public List getPermission() {
return permission;
}
public void setPermission(List permission) {
this.permission = permission;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public int getWebID() {
return webID;
}
public void setWebID(int webID) {
this.webID = webID;
}
}
/**
* 登录校验成功后,封装用户信息
* @version 1.0
*/
public class LoginSubAction extends ActionSupport implements SessionAware{
private Map session;
//忽略其他元素
public String execute() throws Exception{
UserInfo userInfo = new UserInfo();
/*
* 忽略userInfo信息填充
*/
session.clear();
session.put("userInfo", userInfo);
return SUCCESS;
}
public void setSession(Map session) {
this.session = session;
}
//忽略其他get、set方法
}
**
* 获取session信息,根据业务需要进行组合
* @version 1.0
*/
public class BasicAction extends ActionSupport implements SessionAware{
private Map session;
protected UserInfo userInfo;
protected int webID = -1;
protected int userID = -1;
protected String realName = null;
protected List permission = new ArrayList();
// 获取session中用户登录信息
public void getUserInfo(){
if(session!=null || session.get("userInfo")!=null){
this.userInfo = (UserInfo)session.get("userInfo");
}
}
// 获取公共信息
public void getCommonInfo(){
getUserInfo();
if(userInfo != null){
webID = userInfo.getWebID();
userID = userInfo.getUserID();
realName = userInfo.getRealName();
permission = userInfo.getPermission();
}
}
// 获取webID
public void getWebID(){
getUserInfo();
if(userInfo != null){
webID = userInfo.getWebID();
}
}
// 获取userID
public void getUserID(){
getUserInfo();
if(userInfo != null){
userID = userInfo.getUserID();
}
}
// 获取realName
public void getRealName(){
getUserInfo();
if(userInfo != null){
realName = userInfo.getRealName();
}
}
// 获取权限
public void getPermission(){
getUserInfo();
if(userInfo != null){
permission = userInfo.getPermission();
}
}
/*
* 其他组合,根据业务需要进行
*/
public void setSession(Map session) {
this.session = session;
}
}
只需要继承session信息获取类即可使用session信息
/**
* 业务逻辑类,根据需要获取session中用户信息
* @version 1.0
*/
public class BusinessLogicAction extends BasicAction{
private String information;
public String execute() throws Exception{
// 获取全部用户信息,可根据业务需要获取
getCommonInfo();
information = realName+webID+userID+permission;
return SUCCESS;
}
public String getInformation() {
return information;
}
public void setInformation(String information) {
this.information = information;
}
}
分享到:
相关推荐
本文将深入探讨Webwork中Action调用的方法,主要包括三个方面:框架类关系、Web参数的获取与包装以及ActionProxy的创建与执行。 首先,让我们来看看Webwork框架中的类关系。Webwork的核心在于其Action机制,Action...
ActionContext是WebWork中传递请求参数、session状态和其他上下文信息的关键对象。它封装了请求和响应对象,为Action提供了一种访问当前请求环境的统一方式。 **ServletActionContext** ServletActionContext是...
它封装了HttpServletRequest和HttpServletResponse,提供了获取和设置请求参数、session属性等操作的方法。 3. **DispatcherServlet**:在WebWork中,DispatcherServlet负责接收HTTP请求,并根据配置的ActionMapper...
ActionContext是WebWork中的一个关键组件,它提供了访问当前请求的上下文信息,如请求参数、session和application范围的对象。ActionContext使得Action可以获取和设置这些信息,进行数据传递。 7. **...
5. **Request/Session/ApplicationContext**:WebWork2提供了对请求、会话和应用上下文的封装,方便在Action之间共享数据。 6. **视图渲染**:视图通常是JSP页面,通过OGNL表达式从值栈中获取数据并显示。WebWork2...
它封装了当前请求的所有相关信息,如session、request、response对象以及值栈等。ActionContext允许你在Action之间共享数据,也可以通过它访问Servlet容器的相关服务。 **ServletActionContext** ...
ActionContext是WebWork中存储请求上下文信息的容器,它包含了请求参数、Session数据、Application级变量等。ActionContext使得在Action和视图之间传递数据变得方便。 **ServletActionContext**: ...
这个Action类实现了Action接口,并且定义了一个名为execute的方法,这个方法在WebWork框架中会被调用以处理用户的请求。这个类包括一个字符串成员变量,该变量通过OGNL表达式被访问。 ### 其他技术点 1. **HTTP和...
ActionContext是WebWork中的一个重要组件,它封装了当前请求的环境信息,如Session、Request、Response对象以及本地化信息。ActionContext提供了访问和设置这些上下文数据的方法。 - **ServletActionContext**:在...
1. **定义Action**:Action是WebWork中的核心组件,用于封装具体的业务逻辑。在WebWork中,Action通常继承自com.opensymphony.xwork2.Action接口,或其子接口。通过实现execute()方法,可以指定Action的执行逻辑。 ...
UI标签是WebWork中最常用的标签之一,它们封装了HTML控件,使页面开发更加简单和一致。 - **`<ww:form/>`**:表单标签。提供了一个标准的表单框架,可以方便地添加各种表单控件。 - **`<ww:textfield/>`**:文本...
ServletDispatcher 是WebWork中的核心组件之一,它负责根据Action配置信息来分发请求,调用相应的Action方法,并将结果返回给客户端。它解析请求路径,查找匹配的Action映射,执行Action并根据返回的结果类型选择...
3. **DAO层**:使用Hibernate进行数据访问,封装了对数据库的CRUD操作,通过SessionFactory和Session对象与数据库交互。 4. **Model层**:定义了Java对象模型,如Book、User等实体类,与数据库表结构对应。 5. **...
在WebWork中,模型通常是一个Java对象,与数据库或其他服务进行交互。 2. 视图(View):视图负责呈现数据,通常是HTML页面,JSP或FreeMarker模板。WebWork允许开发者通过简单的标签来绑定模型数据,实现动态页面...
【标题】"webwork+hibernate+spring的例子"展示了如何在实际项目中整合这三大框架,即WebWork、Hibernate和Spring。这三个框架是Java Web开发中的重要组件,它们各自承担着不同的职责,共同构建了一个功能强大的应用...
WebWork、Spring 和 Hibernate 是Java开发领域中三个非常重要的开源框架,它们分别专注于Web应用程序的交互层、业务层和服务层。本教程将帮助你快速掌握这三大框架的整合使用,从而构建一个完整的Java企业级应用。 ...
5. **服务层接口和实现**:定义EmployeeService接口,包含对DAO操作的封装,如获取所有员工、删除指定员工、更新员工信息等,然后实现该接口。 6. **控制层**:创建Struts2的Action类,比如EmployeeAction,这里将...