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>

我现在正试图通过在带有名称空间结果路径的类上的注释来定义它,但我不知道该怎么做。请帮忙 :)

我努力了

@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 中定义。定义看起来像这样

@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 回答