gpt4 book ai didi

java - 转发到相同的 struts2 操作时丢失 bean 的值

转载 作者:行者123 更新时间:2023-12-02 07:42:46 46 4
gpt4 key购买 nike

我正在开发一个简单的 UI,用户可以通过它向我们的公告系统添加消息。

他们在 addMessage.jsp 上输入详细信息,在 reviewMessage.jsp 上查看结果,然后从 reviewMessage.jsp 提交,其中信息将通过存储过程发送到数据库。

一切正常,直到用户从评论页面进行提交。当执行离开 JSP 并重新进入 Action 类时,消息 bean 已变为 null。如何在同一个操作中通过多个方法和页面持久保存 bean?

这是我的 struts.xml 文件的片段:

<!--Render message entry page-->
<action name="activateMessageInitial"
class="org.mycompany.struts.action.ActivateMessageAction" method="execute">
<result name="success">/addMessage.jsp</result>
</action>

<!--Receive message bean fields, adjust their results for storage, render review page-->
<action name="segmentMessage"
class="org.mycompany.struts.action.ActivateMessageAction" method="parseAndSegment">
<result name="failed">/addMessage.jsp</result>
<result name="success">/reviewMessage.jsp</result>
</action>

<!--Review complete, break message bean into fields to submit to database, then return to main menu-->
<action name="submitMessage"
class="org.mycompany.struts.action.ActivateMessageAction" method="activate">
<result name="success" type="redirectAction">main</result>
</action>

还有一个混淆的ActivateMessageAction类:

private TargetedMessage messageBean;

public String execute() throws Exception
{
//empty method
}

//Take the provider message bean, adjust any values as necessary, and then add in the segmentation detail.
public String parseAndSegment() throws Exception
{
//adjust bean fields
}

//Take a completed provider message bean and send it to the database for processing.
public String activate()
{

//send bean to database; null, here, hence the error.
ActivateMessageModel.createMessage(messageBean);
}

public void setMessageBean(TargetedMessage messageBean)
{
this.messageBean = messageBean;
}

public TargetedMessage getMessageBean()
{
return messageBean;
}

最佳答案

操作的生命周期仅限于单个 HTTP 请求。您可以将数据作为隐藏表单字段传递,也可以将对象存储在 session 中。

关于java - 转发到相同的 struts2 操作时丢失 bean 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368495/

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