0

我在维护查询参数的值时遇到了麻烦,该参数在 URL 中发送并在输入转发期间由于验证错误而丢失。

我有一个链接链接这个

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

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

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

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

  3. 现在test.jsp,从请求中,表单中的隐藏字段被填充。

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

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

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

4

1 回答 1

1

当您提交表单时,您没有在 url 中传递参数。要使其正常工作,您应该action在表单标签的属性中包含参数。

喜欢

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

或在 URL 中提交不带参数的表单,但要传递参数,您需要向 html:hidden表单添加字段,该字段将保存值。

于 2013-09-05T13:09:16.633 回答