struts2の中でactionがresponseオブジェクトを取得する方法は何ですか。

Struts2では、ServletResponseAwareインターフェースを実装することでresponseオブジェクトを取得することができます。具体的な手順は次の通りです。

  1. Actionクラスを作成し、ServletResponseAwareインターフェースを実装してください。
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletResponseAware;

public class MyAction implements ServletResponseAware {
    private HttpServletResponse response;

    @Override
    public void setServletResponse(HttpServletResponse response) {
        this.response = response;
    }

    // 在需要使用response对象的方法中,可以直接使用this.response来获取response对象
    public String execute() {
        // 使用response对象的方法
        response.setContentType("text/html");
        // ...
        return "success";
    }
}
  1. struts.xmlファイルにStruts2の設定を配置し、Actionクラスをアクセス可能なActionとして設定します。
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="myAction" class="com.example.MyAction">
            <result>/success.jsp</result>
        </action>
    </package>
</struts>
  1. JSPページでアクションを呼び出す。
<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form action="myAction">
    <s:submit value="Submit" />
</s:form>

上記の例では、Submitボタンがクリックされると、myActionのexecute()メソッドがトリガーされ、レスポンスオブジェクトを取得し、それに対応する操作が行われます。

bannerAds