如何让表达式语言跳过多个jsp页面?

时间:2014-11-11 09:14:28

标签: java jsp variables spring-mvc el

我可以使用一些表达语言来工作但不是全部。 这是我的路线。启动home.jsp(点击链接会转到q4.jsp)。选择一个单选按钮,然后单击另一个链接。带你去q1.jsp。选择一个单选按钮,在文本框中输入文本,然后单击另一个链接并完成results.jsp。

我的问题:

这是result.jsp

Good day **Rich**, for question 1 you chose and for question 2 you chose **Integer**

Total score:

Rich没有硬编码,results.jsp实际上是“Good day $ {param.elc}”。这个工作。 整数没有硬编码,results.jsp实际上是“和问题2你选择$ {param.radios1}”。这个工作

如果jsp页面不在变量所在的位置之前,则不起作用。 q1.jsp直接导入results.jsp,因此工作变量。如上所示,选择后没有变量,即使jsp为问题1读取,你也选择了$ {param.radios4}。

为什么jsps之前只能从页面读取?我希望q4.jsp将变量存储到结束页面。

1 个答案:

答案 0 :(得分:0)

您必须使用会话进行用户和网络应用之间的对话。因为默认情况下,只要您响应第一个请求就将参数存储为请求属性。

具有会话范围的对象可从处理请求的页面访问,这些请求与创建它们的会话位于同一会话中。会话是用户使用应用程序所花费的时间,当他们关闭浏览器,访问其他Web站点或应用程序设计者需要时(例如,在注销后),该会话结束。因此,例如,当用户登录时,他们的用户名可以存储在会话中并显示在他们访问的每个页面上。此数据将持续到离开网站或注销为止。

e.g:

    <jsp:useBean id="employee" class="EmployeeBean" scope="session" /> 

或者您可以使用HttpSession接口的引用将您的请求参数保存在会话属性中。

 public class MyServlet extends HttpServlet {  

    public void doGet(HttpServletRequest request, HttpServletResponse response){  
    try{  


    String n=request.getParameter("userName");  

    HttpSession session=request.getSession();  
    session.setAttribute("uname",n);  

    //code

   }catch(Exception e){System.out.println(e);}  
  }  

 }