我有1个JSP,比如说1.jsp
,其中我有一个值来自request.getAttribute("testvalue")
的动作类,因为我正在使用Struts框架。我需要将此值从1.jsp
发送到另一个2.jsp
。请告诉我怎么做?
还要继续,我需要将此值从2.jsp
发送到3.jsp
。
我试图避免在会话中使用设置值。
那么让我知道怎么做?
答案 0 :(得分:1)
从请求中获取值,您应该为请求添加值。这段代码
request.getAttribute("testvalue");
正在获取一个值,但该代码
request.setAttribute("testvalue", value);
正在投入。
这是因为您希望避免使用HTTP会话。
答案 1 :(得分:0)
如果这是在单个请求中,则请求属性可用于转发链中的所有页面。这意味着所有servlet和JSP都可以访问。因此,在请求周期中的任何时候,在属性设置之后,可以使用request.getAttribute(String)检索该值。
答案 2 :(得分:0)
以下是另一种我知道的方式:
使用get参数:例如,您有第二个jsp文件的链接。在链接末尾添加参数。像这样:mysite.com/second.jsp?param1=value1¶m2=value2
在firstjsp页面中使用表单并使用隐藏输入:
<form action="second.jsp" method="post">
<input type="hidden" name="param1" value="value1" />
<input type="hidden" name="param2" value="value2" />
<input type="submit" name="next" value="Next Page" />
</form>
使用应用程序变量,但如果您的数据是通用的,或使用speciall参数名称来存储您的值。例如,您可以使用:
<% application.setAttribute("user1_param1","value1"); %>
在您的代码中使用RequestDispatcher。并在请求对象而不是会话中设置您的参数。
<%
request.setAttribute("param1","value1");
RequestDispatcher r=request.getRequestDispatcher("second.jsp");
r.forward(request, response);
%>
请Subtilize您可以在不同的状态下互相使用。例如,您可以在发送任何结果ro用户之前转发请求时使用RequestDispatcher。以及在下一个使用请求的第二页中将当前数据发回给您的其他方法。