繁体   English   中英

如何使表达语言跨多个jsp页面跳转?

[英]how to make expression language jump across multiple jsp pages?

我可以使用某种表达语言,但不能全部使用。 例如,这是我的路线。 启动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读取了您选择的$ {param.radios4}的问题,选择后也没有变量。

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

您必须使用会话在用户和Web应用之间进行对话。 由于默认情况下,一旦您对第一个请求消失了,您的参数就会存储为请求属性。

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

例如:

    <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);}  
  }  

 }  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM