私は、ユーザーがアナウンスシステムにメッセージを追加できるシンプルな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;
}