因此,我使用帶有Struts2的freemarker模板來制定我的響應。但是,因爲我也嘗試使用taconite,所以我需要將響應與「text/xml」的內容類型一起發送。我似乎無法找到使用freemarker指令來設置內容類型的方法,並且我對struts中的知識是否足夠了解,知道是否有辦法通過它來完成。在Struts2中設置響應的內容類型
那麼,我該怎麼辦呢?
因此,我使用帶有Struts2的freemarker模板來制定我的響應。但是,因爲我也嘗試使用taconite,所以我需要將響應與「text/xml」的內容類型一起發送。我似乎無法找到使用freemarker指令來設置內容類型的方法,並且我對struts中的知識是否足夠了解,知道是否有辦法通過它來完成。在Struts2中設置響應的內容類型
那麼,我該怎麼辦呢?
O R您可以將其設置在struts.xml中
<action name="..." class="...">
<result name="SUCCESS">
<param name="contentType">text/html</param>
回答我自己的問題:
使用的模板類型下面的代碼:
${response.setContentType("text/xml")}
在你的Action類,實現了ServletResponseAware接口,並且使用簡單:
package your.package;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
public class YourAction extends ActionSupport implements
ServletResponseAware {
private HttpServletResponse response;
public String execute() throws Exception{
response.setContentType("image/png");
return SUCCESS;
}
public void setServletResponse(HttpServletResponse response){
this.response = response;
}
public HttpServletResponse getServletResponse(){
return response;
}
}
更多的信息在這裏:http://www.roseindia.net/struts/struts2/strutsresources/access-request-response.shtml
實施ServletResponseAware
在其他情況下可能會奏效,但它不具有的Freemarker和Struts2的幫助。 :-(我只是一個調試器追蹤事情的經過,並發現......通過實施ServletResponseAware
,我得到了進入反應,我可以改變的內容類型,從我的行動。好。
一次我的動作做,很快控制在org.apache.struts2.views.freemarker.FreemarkerResult
結束了,這使得模板
preTemplateProcess()
設置響應的內容類型,而忽略了那些本來:-(
顯然有可能被用於替代這是一個「自定義屬性」,但我還沒有發現在谷歌尚未
的FreemarkerResult
類本身的任何解釋可以有一個內容類型設置爲覆蓋默認,但是......不確定那裏可以設置,也許在一個struts配置?
所以到目前爲止,它似乎並不動作可以設置內容類型,幸好托馬斯上面所指出的,這將覆蓋所有:
${response.setContentType("text/xml")}
所以至少它是可能來自模板。當然會更容易和更安全地給一組XML產生作用的通用超認爲需要照顧這...
或者,如果你喜歡註釋:
@Result(name=SUCCESS, location="...", params={"contentType", "text/html"})
這爲我工作,不知道爲什麼別人說它沒有。 – 3urdoch 2011-11-25 09:58:11
這個描述了我需要做的速度:http://blog.bielu.com/2008/05/struts-velocity-and-flexible-content.html – depsypher 2012-06-26 22:50:08