如何使用图像结果定义动作的注释?

时间:2012-11-15 01:42:51

标签: java struts2 annotations

我可以在 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>

我现在正试图通过 namesapce 结果路径在类上的注释来定义它,我不知道该怎么做。请帮助:)

我试过了

@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 

1 个答案:

答案 0 :(得分:4)

正如错误所述,必须在Action中定义结果。 定义看起来像这样

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

在示例中,您还会看到类型以及如何定义contentType。

流将由“getFileInputStream”-method:

返回
public InputStream getFileInputStream() {

            return fileInputStream;
    }

“getContentDisposition”-Method必须在Action-class

中可用
public String getContentDisposition() {
    return "attachment; filename=" + getFilename() + ".pdf";
}