站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题struts页面跳转?

struts页面跳转?

摘要: struts页面跳转?


我的listUser.jsp页面是显示所有用户的列表,上面有个链接:addUser.jsp为添加用户的页面.
addAction接受addUser.jsp来的数据并添加到数据库后,需要跳回到listUser.jsp页面,
并显示已添加用户的信息列表。

这个如何实现亚?

我在addAction里面重新定义了listForm,然后再request一下,但是一条数据也显示不出来呀?

这是怎么回事呀?

谢谢!


原代码贴出来看看,


看看代码先


addAction:

baseUserInfoForm userForm = (baseUserInfoForm) form;

List list=BaseDAO.findAll("from BaseUserInfo");

request.setAttribute("listUser", list);

forward = mapping.findForward("success");

/////////////////////////////////////////////////////////////////////////
listUser.jsp:



<tr bgcolor="#FFFFFF">
<td><%=index.intValue()+1%></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>





这就是:addAction

public class baseUserInfoAddAction extends Action {

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors();
ActionForward forward = new ActionForward(); // return value
com.huzai.admin.forms.baseUserInfoAddForm baseUserInfoAdd =
(com.huzai.admin.forms.baseUserInfoAddForm) form;

try {

// do something here
BaseUserInfo baseUserInfo=new BaseUserInfo();

baseUserInfo.setNAME(baseUserInfoAdd.getTxtNAME());
baseUserInfo.setNICK(baseUserInfoAdd.getTxtNICK());
baseUserInfo.setPWD(baseUserInfoAdd.getTxtPWD());
baseUserInfo.setTELEPHONE(baseUserInfoAdd.getTxtTELEPHONE());
baseUserInfo.setEMAIL(baseUserInfoAdd.getTxtEMAIL());
baseUserInfo.setCREATED(huzaiUtil.getCurrentTime());

BaseDAO.add(baseUserInfo);

//com.huzai.admin.forms.baseUserInfoForm baseUserInfoForm =
//(com.huzai.admin.forms.baseUserInfoForm) form;

baseUserInfoForm userForm = (baseUserInfoForm) form;

List list=BaseDAO.findAll("from BaseUserInfo");

//userForm.setListUserColl(list);

request.setAttribute("listUser", list);

forward = mapping.findForward("success");

} catch (Exception e) {

// Report the error using the appropriate name and ID.
errors.add("name", new ActionError("id"));

}

// If a message is required, save the specified key(s)
// into the request for use by the tag.

if (!errors.isEmpty()) {
saveErrors(request, errors);
}
// Write logic determining how the user should be forwarded.
forward = mapping.findForward("success");

// Finish with
return (forward);

}
}


xml没有定义吧。


你不要用request.setAttribute("listUser", list);
用如下代码:
HttpSession session = request.getSession();
session.setAttribute("listUser", list);
在jsp页面用session来取


那这个session什么时候消失呀?


不是楼上说的问题,session和request主要区别是取值范围不一样,你这种情况用request就可以了。

主要原因是下面这个地方错了。



List list=BaseDAO.findAll("from BaseUserInfo");

//userForm.setListUserColl(list);

request.setAttribute("listUser", list);
看见什么原因了吗?你页面循环的时候接受的值的时候name的值是listUserColl,而你传添加后再执行刷新的时候是listUser,当然是空的一条记录也不会显示出来。应该改成:
request.setAttribute("listUserColl", list);



↑返回目录
前一篇: 【请问】一个关于EJB3.0的构造函数的问题
后一篇: javascript的一个应用问题。