java - 如何让表达式语言跨多个jsp页面跳转?

标签 java jsp variables spring-mvc el

我可以使用一些表达语言,但不是全部。 例如,这是我的路线。启动 home.jsp(单击链接即可进入 q4.jsp)。选择一个单选按钮,然后单击另一个链接。带您进入 q1.jsp。选择一个单选按钮,在文本框中输入文本,然后单击另一个链接并完成 results.jsp。

我的问题:

这是结果.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 将变量存储到结束页面。

最佳答案

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

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

例如:

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

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

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

 }  

关于java - 如何让表达式语言跨多个jsp页面跳转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26861270/

相关文章:

C: C "ignore"局部函数变量在静态时如何后续初始化?

Java,局部变量无故增加其值

java - 在Java Spring 4中从应用程序A到应用程序B进行rest或soap api调用时,将用户名存储在数据库中

java - 如何在 Java 中按照区域设置正确的顺序格式化日期和月份?

java - 如何在ajax中从jsp返回列表作为JSON对象?

java - 我该如何解决 "org.json.simple.JSONObject cannot be resolved"?

java - 如何从另一个页面获取属性

java - 如何在动态报表中设置页面宽度?

java - 什么是 NullPointerException,我该如何解决?

Powershell 在单个命令行上组合变量表达式