gpt4 book ai didi

java - 如何在 Struts 2 中使用 View ?

转载 作者:行者123 更新时间:2023-12-01 11:51:16 26 4
gpt4 key购买 nike

在普通的旧 servlet 中,我可以使用 doGetdoPost 方法。在 doGet 中,我将用户转发到某个页面,在 doPost 中,我正在处理从我提供的页面输入的数据。这一切都发生在一个 servlet 中。

但是 Struts2 适用于前端 Controller 模式,而不是 doGet/doPost 我只有 execute 方法。那么我怎样才能正确地给用户一些页面,以便他可以看到它,输入数据,提交并应用程序作为结果在 execute 中处理它?<​​/p>

据我所知,我有两个选择(注册表上的示例):

  1. 将页面映射到另一个网址:

    <action name="register_display">
    <result name="success" type="dispatcher">register.jsp</result>
    </action>

    <action name="register"
    class="magazine.action.client.RegisterClientAction"
    method="execute">
    <result name="success" type="redirectAction">/index</result>
    <result name="error" type="redirectAction">register_display
    </result>
    </action>
  2. 创建名为 display 的整个包,并将所有可以执行 POST 的 View 放在那里:

    <package name="display" namespace="/display" extends="struts-default">
    <action name="register">
    <result name="success" type="dispatcher">register.jsp</result>
    </action>
    ...
    </package>

还有其他选择吗?更喜欢哪一个?

最佳答案

在标准的Struts2风格中,一个Action类只有一个工作方法,这就是execute方法。但是,您不必遵循这一点。您可以在单个 Action 类中定义多个操作。

例如,您向 users 发出 GET 请求,该请求将在 UsersAction 的默认 execute 方法中处理。

@Override
public String execute() {
// fetch the list of users
return SUCCESS;
}

假设您想通过 POST 到 user_add 在同一操作中添加新用户。因此,您定义一个 add 方法:

public String add() {
// add the user
return SUCCESS;
}

struts.xml 看起来与此类似:

<package name="users" extends="defaultPackage">
<action name="users" class="com.example.UsersAction">
<result>users.jsp</result>
</action>

<action name="user_add" class="com.example.UsersAction" method="add">
<result type="redirect">users</result>
</action>
</package>

在您的场景中,您将呈现页面,用户应该在运行(可能为空)execute 方法后看到该页面。然后,您将发出 post 请求,该请求将映射到 Action 类的其他方法。

关于java - 如何在 Struts 2 中使用 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28805269/

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