我想了解请求属性的行为方式。我已经在会话中设置了一些值,这给了我很多问题。我将它们全部转换为请求属性。
我有一个动作类,在视图方法中我设置了这样的东西,
public ActionForward view(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
//...
request.setAttribute("abc", abc);
//...
}
单击选项卡并显示页面时,将调用此视图方法。此页面中有另一个名为“导出”的按钮。我已经使导出调用相同的操作类并调用一个名为exportExcel的方法,如下所示:
public void exportExcel(ActionMapping mapping, ActionForm actionForm,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
if(request.getAttribute("abc")!=null){
String def = (String)request.getAttribute("abc");
}
}
假设我会得到请求参数。它没有用。另外,我不想在会话中设置此变量。在此exportExcel方法中是否有解决方法来获取此请求属性?
答案 0 :(得分:1)
在你的jsp中你需要创建name="abc"
的隐藏输入字段并将其值设置为abc请求属性值。
这样,当用户点击导出按钮时,它将被提交回来。
如果您的导出按钮是锚点,那么您可以使用abc参数名称/值设置其href
。
答案 1 :(得分:1)
请求属性仅在单个请求的持续时间内存在;这就是请求范围的目的。如果您希望在请求中持久,请将其保留在会话
中如果要在 new 请求中重新创建某些内容,请使用表单元素,URL参数等。