如果输入转发,如何在URL中附加查询参数?

时间:2013-09-05 11:43:04

标签: java jsp url parameters struts

我无法维护在URL中发送的查询参数的值,并且由于验证错误而在输入转发期间丢失了。

我有一个链接链接

<a href="/somelink/testpage?param1=value1&param2=value2" id="test">Test</a>

单击此链接将打开一个新页面,其中包含一个包含两个隐藏字段的表单(从这些参数中获取值)。此页面有两个按钮 save cancel 。我的问题是

  1. 点击链接,此操作对应的输入页面为test.jsp。这会呈现页面。(例如,URL为https:host/somelink/testpage?param1=value1&param2=value2)。

  2. 我填写表格并点击提交表格的保存按钮。在Action类中,我得到params并在请求中设置并进行验证。由于验证错误,控制转到输入页面(但在url中没有查询参数)。现在,输入页面包含错误消息,URL为https:host/somelink/testpage

  3. 现在在test.jsp中,请求中填写了表单中的隐藏字段。

  4. 错误显示在输入页面中。现在,如果我再次单击“保存”按钮,则控件将转到Action类,并提交表单。在这种情况下,我可以访问这些参数(如表格提交)

  5. 但是有一种情况是在输入页面中有错误,如果用户从地址栏按 Enter ,请求将转到动作类(记住当输入转发时)在页面中,查询参数没有设置在url中,所以现在如果发送请求,则无法获取param的值,因为它不在url中,并且表单未提交。)

  6. 有什么方法可以保持参数的价值吗?我无法将其作为输入转发附加到URL。我发现保留params值的唯一方法是添加会话并从会话中获取。但我不确定它是否合情合理。

1 个答案:

答案 0 :(得分:1)

提交表单时,您未在网址中传递参数。要使其正常工作,您应该在表单标记的action属性中包含参数。

喜欢

<html:form action="/somelink/testpage?param1=value1&param2=value2">

或提交URL中没有参数的表单,但要传递您需要添加的参数 表单中的html:hidden字段,用于保存值。