gpt4 book ai didi

java - 具有多种方法的 struts.xml 映射操作

转载 作者:行者123 更新时间:2023-11-30 11:53:17 27 4
gpt4 key购买 nike

我看过很多教程,其中action有很多除execute之外的方法

public class UserAction {

public TestAction() {
}

public String execute() throws Exception {
System.out.println("hello i aam action");

return "success";
}

public String addUser(String name)
{

return "success";


}

public String listUser(String name)
{

return "success";


}

}

Action 映射是这样完成的

  <action name="addUser" method="addUser" class="com.vaannila.web.UserAction">
<result name="success" type="redirect">listUser</result>
</action>

<action name="listUser" method="listUser" class="com.vaannila.web.UserAction">
<result name="success">/register.jsp</result>
</action>

我无法理解。listUser 是如何被调用的?

最佳答案

我认为这行不通,因为您的映射指向不存在的方法(添加、列表)。您的操作中有 addUserlistUser,因此您的映射必须指向相同的方法。
回到你的问题,我不得不说 Struts2 有一个特性,可以让你将几个方法打包到同一个 Action 中。当您要执行 CRUD 操作时,这特别有用。一种方法是明确预先确定要在映射中调用的方法:

<action name="listUser" method="list" class="com.vaannila.web.UserAction"> 
<result name="success">/register.jsp</result>
</action>

如果您将浏览器指向 http://yourDomainHere/listUser,您的 UserAction 操作中的 list 方法将被执行。您还可以在此处使用通配符映射,例如:

<action name="*User" method="{1}" class="com.vaannila.web.UserAction"> 
<result name="success">/register.jsp</result>
</action>

在这种情况下,您可以将星号 (*) 替换为操作中的任何方法。此映射将映射中的第一个占位符 ({1}) 作为方法调用它。因此,您可以将浏览器指向:http://yourDomainHere/listUserhttp://yourDomainHere/addUser 知道相同的映射将处理这两者,并且您各自的方法将是打电话。

编辑评论
我想我明白你的意思了。在您提供的示例中,永远不会调用 listCustomer。在发送 success 之前填充 customerList 的是 addCustomer 并且因为它为列表提供了一个 getter 方法,所以返回页面您可以访问它并迭代它并显示值。

关于java - 具有多种方法的 struts.xml 映射操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6401838/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com