1. 程式人生 > >Struts2 如何實現同一個action不同方法進行傳值

Struts2 如何實現同一個action不同方法進行傳值

我有一個action 並且裡面有兩個方法

如下:

public class MemberAction implements Action {

	private static final long serialVersionUID = 1L;

	private MemberUser mUser;
	
	public MemberUser getmUser() {
		return mUser;
	}

	public void setmUser(MemberUser mUser) {
		this.mUser = mUser;
	}


	MemberUserBiz biz = new MemberUserBizImpl();
	
	RoleMenuBiz menubiz = new RoleMenuBizImpl();
	
	
	/**
	 * @return
	 * 使用者登入
	 */
	@SuppressWarnings("unchecked")
	public String logIn()
	{
		if((mUser=biz.UserlogIn(mUser.getAccountNumber(),mUser.getPwd()))!=null)
		{
			sessionMap.put("mUser", mUser);
			return "logIn";
		}
		else
			return "nologIn";
	}
	
	/**
	 * @return
	 * 顯示選單目錄
	 */
	@SuppressWarnings("unchecked")
	public String showMenu()
	{	
		List<Authority> menuList = new ArrayList<Authority>();
		menuList=menubiz.checkMenu(mUser.getRoleId());		
		sessionMap.put("menuList", menuList);	
		 return "showMenu";
	}

我原來 是想在同一個action裡 不同的方法應該可以直接呼叫全域性變數 mUser裡面的值,可事實卻是 showMenu()方法裡面的mUser總是為null, 

後來 在Struts.xml配置裡面改成這樣才可以

<action name="member_*" class="com.action.MemberAction" method="{1}">
  <result name="logIn" type="chain">member_showMenu</result>

</action>

這應該是基礎吧