编程语言
首页 > 编程语言> > java – 如何根据按下的窗体的提交按钮将用户重定向到不同的页面

java – 如何根据按下的窗体的提交按钮将用户重定向到不同的页面

作者:互联网

首先,请注意我知道以下代码不是JavaScript或jQuery,但我只是将它们添加为此问题的标签,希望使用Javascript或jQuery找到它的解决方案.

我有一个带有三个提交按钮的表单.问题是,当我使用任一按钮提交表单时,结果页面将被发送到同一地址.我需要它在不同的地址.

目的:代码应该在名为view的页面中显示特定类别的项目列表.用户选择几个项目并提交表格.服务器需要在名为update的页面中显示所选项目的详细信息(具有视图页面的单独地址).然后,用户可以编辑项目的详细信息并提交表单以更新这些项目的详细信息.

需求

让我们说地址是

    myexample.com/Product/view      //shows view page

点击编辑后,它应该重定向到以下地址.

    myexample.com/Product/update     //shows update page ( show details of selected products)

潜在解决方案

根据Roman C的回答,在收到请求后,我将产品列表传递给其他操作以显示更新页面,但它在地址上显示如下;因此,更新页面不会将产品参数识别为列表.

   ...products=[1%2C+2]&id=1

Java的

    List <Integer> products = new ArrayList();

Struts重定向

   <result name="updateProducts" type="redirectAction">
            <param name="actionName">update</param>
            <param name="namespace">/products/Update</param>
            <param name="products">${products}</param>
            <param name="id">${id}</param>
   </result>

即使我手动发送以下请求,操作类也不会将products参数识别为列表.它显示它的大小为零.

     ...products=[1,2]&id=1

解决方法:

您应该将redirectAction结果添加到处理提交请求的操作的操作配置中.在你的情况下它有一个编辑名称,这是令人困惑的,应该命名为保存或更新,因为当你命名它编辑时,许多程序员认为你正在请求填充一些文本字段.但事实并非如此,您的编辑操作不会填充,而不是提交到服务器.提交后,您应该遵循Post-Redirect-Get pattern并将redirectAction或重定向结果返回到其他操作或URL,如果您不想在重定向后留在页面上,则查看或编辑操作.删除通配符映射所涵盖的编辑操作配置.添加保存按钮

<s:submit id="saveBtn" action="save" value="Save"/>

添加并返回保存操作的重定向操作结果

<action name="save" method="save" class="myexample.Product">
  <result type="redirectAction" name="list" />
</action>   

标签:actionresult,java,struts2,jsp,post-redirect-get
来源: https://codeday.me/bug/20190830/1771763.html