论坛首页 Java企业应用论坛

struts2类赋值,一点提示

浏览 1514 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-30  
   在struts2里面可以使用user.username这个的方法来对user这个对象实例化加上赋值(这里需要注意的是:user是一个类必须在action里面有set方法,,在user类里面必须是一个无参数的构造方法的类和有username的set方法)
   代码如下:
UserAction类
public class UserAction extends BaseAction {
	private User user;

	public void setUser(User user) {
		this.user = user;
	}

	public String index() {
		return SUCCESS;
	}

BaseAction类
package com.vstar.web.action;

import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware {
	private static final long serialVersionUID = 1L;
	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected String message;

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}

	public void setServletResponse(HttpServletResponse response) {
		this.response = response;
	}
}

实体User类
package com.vstar.web.entity;

public class User {
	private String username;

	private String pass = "";

	private boolean webInsert;

	private boolean webUpdate;

	private boolean webDelete;

	private boolean webSelect;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String password) {
		this.pass = password;
	}

	public boolean isWebInsert() {
		return webInsert;
	}

	public void setWebInsert(boolean webInsert) {
		this.webInsert = webInsert;
	}

	public boolean isWebUpdate() {
		return webUpdate;
	}

	public void setWebUpdate(boolean webUpdate) {
		this.webUpdate = webUpdate;
	}

	public boolean isWebDelete() {
		return webDelete;
	}

	public void setWebDelete(boolean webDelete) {
		this.webDelete = webDelete;
	}

	public boolean isWebSelect() {
		return webSelect;
	}

	public void setWebSelect(boolean webSelect) {
		this.webSelect = webSelect;
	}
}


     但是这样赋值传进去一个参数是没有问题的,例如index.do?user.username=213这样的方式
实际上我们可能需要传入2个参数,比如index.do?user.username=admin&user.pass=admin,这样的情况如果是这样我们在action内调用user.getUsername()或user.getPassword()方法时候就会出问题,经过测试我得到在action必须加上user的get方法才能成功
     下面我来说下我对struts2这时候再做什么的一种想法,struts2处理参数时,先找到user这个对象get方法,如果没有则创建一个新的对象,如果有则找到运行这个方法得到这个user对象,如果这个对象为null,则创建一个新的对象.
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics