1

struts.xml構成で定義しても問題ありませんでした。

<action name="getImage" class="my.action.GetImageAction">
      <result name="success" type="stream">  
          <param name="contentType">image/jpeg</param>  
          <param name="inputName">imageStream</param>  
          <param name="bufferSize">1024</param>  
      </result>  
</action>

そして今、 namesapceresult pathを使用してクラスにアノテーションを付けて定義しようとしていますが、その方法がわかりません。助けてください :)

私が試してみました

@Namespace("/my/namespace")
@ResultPath("/")
@Result(name = "success", type = "imageResult")
public class GetImageAction extends ActionSupport {
.....
@Override
@Action("/getImage")
public String execute() throws Exception {
.....

そして、私はエラーが発生しました

HTTP Status 404 - No result defined for action 
4

1 に答える 1

4

エラーが示すように、結果はアクションで定義する必要があります。定義は次のようになります

@Action(value = "getImage", results = { @Result(
        name = "success", 
        type = "stream", 
        params = {"contentType", "application/pdf" }) })

この例では、タイプとcontentTypeの定義方法も示しています。

そして、ストリームは「getFileInputStream」メソッドによって返されます。

public InputStream getFileInputStream() {

            return fileInputStream;
    }

「getContentDisposition」-メソッドはActionクラスで使用可能である必要があります

public String getContentDisposition() {
    return "attachment; filename=" + getFilename() + ".pdf";
}
于 2012-11-15T05:40:07.043 に答える