1. ResultType细化
<result-types>
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
<result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
<result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
</result-types>
示例action
/**
* ResultTypeAction
*/
public class ResultTypeAction extends ActionSupport {
private static final long serialVersionUID = -6933309304624396640L;
private String name = "中文" ;
private String saveFileName ;
/**
* 只能请求转发到jsp或者是servlet.
*/
public String dispatcher() {
System.out.println("dispatcher");
return "dispatcher";
}
/**
* 重定向到任意的url.
*/
public String redirect() {
System.out.println("redirect");
return "redirect";
}
/**
* 重定向action的好处在于不需要硬编码url地址,即不需要绑定url模式.只能重定向到当前应用中的
* 某个action.
*/
public String redirectAction() {
System.out.println("redirectAction");
return "redirectAction";
}
/**
* 得到输入流
* @throws FileNotFoundException
*/
public InputStream getIs() throws FileNotFoundException{
return new FileInputStream("d:/sunset.jpg");
}
/**
* 下载
*/
public String stream(){
try {
saveFileName = URLEncoder.encode("日落", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "stream" ;
}
/**
* 链化action,请求转发到另外一个action,在同一个线程中,数据共享
*/
public String chain(){
System.out.println("chain");
return "chain" ;
}
/**
* 输出纯文本
*/
public String plainText(){
System.out.println("plainText");
return "plainText" ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSaveFileName() {
return saveFileName;
}
public void setSaveFileName(String saveFileName) {
this.saveFileName = saveFileName;
}
}
struts配置文档 rt.xml
2. 国际化显示页面
语言资源文件放在action同目录下, 命名格式 action同名 + 国家代码 + 语言代码
I18nAction_zh_CN.properties
label.name=userName_zh_CNI18nAction_en_US.properties
label.name=userName_en_US