2013-03-20 33 views
0

我想了解请求属性的行为方式。我已经在会议中设置了一些值,这给我带来了很多问题。我将它们全部转换为请求属性。struts中的请求属性行为

我有一个动作类,其中鉴于方法我已经建立了这样的事情,当我点击选项卡

 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

我应该设置范围=“请求”在struts配置? – JNPW 2013-03-20 16:05:25

回答

1

在您的jsp中,您需要创建name="abc"的隐藏输入字段,并将其值设置为abc请求属性值。 这样,当用户点击您的导出按钮时,它将被提交回来。

如果您的导出按钮是锚点,那么您可以使用abc参数名称/值来设置它的href

1

请求属性仅在单个请求期间存在;这就是请求范围的用途。如果你想要的东西,以坚持跨请求,保持它在会议

如果要重新创建一个新的要求东西,使用表单元素,URL参数等