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

<?xml version="1.0"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="RtPkg" namespace="/rt" extends="struts-default">
<action name="ResultTypeAction_*" class="cn.itcast.struts2.resulttype.ResultTypeAction" method="{1}">
<result name="dispatcher" type="dispatcher">/login.jsp</result>
<!--调用action中的数据 用 ${...}-->
<result name="redirect" type="redirect">/ui/UiAction_saveData.do?name=${name}</result>
<result name="redirectAction" type="redirectAction">
<param name="actionName">UiAction_saveData</param>
<param name="namespace">/ui</param>
<param name="name">${name}</param>
<param name="age">20</param>
</result>
<result name="stream" type="stream">
<param name="contentType">image/jpeg</param>
<param name="contentDisposition">
attachment;filename="${@java.net.URLEncoder@encode('日落', 'UTF-8')}.jpg"
</param>
<param name="inputName">is</param>
</result>
<result name="chain" type="chain">
<param name="actionName">UiAction_saveData</param>
<param name="namespace">/ui</param>
</result>
<result name="plainText" type="plainText">
<param name="location">/ipmsg.log</param>
<param name="charSet">GBK</param>
</result>
</action>
</package>
</struts>

2. 国际化

显示页面

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>reg.jsp</title>
</head>
<body>
<s:form namespace="/i18n" action="I18nAction_toRegView" method="post" theme="xhtml">
<!--国际化显示语言选择-->
<s:select name="request_locale"
list="#{@java.util.Locale@CHINA:@java.util.Locale@CHINA.getDisplayName(@java.util.Locale@CHINA),
@java.util.Locale@TAIWAN:@java.util.Locale@TAIWAN.getDisplayName(@java.util.Locale@TAIWAN),
@java.util.Locale@US:@java.util.Locale@US.getDisplayName(@java.util.Locale@US),
@java.util.Locale@UK:@java.util.Locale@UK.getDisplayName(@java.util.Locale@UK),
@java.util.Locale@JAPAN:@java.util.Locale@JAPAN.getDisplayName(@java.util.Locale@JAPAN)}"
listKey="key"
listValue="value"
onchange="this.form.submit();"
value="locale">
</s:select>
<!--国际化显示 提示信息-->
<s:textfield name="name" key="label.name" />
<s:submit />
</s:form>
</body>
</html>

语言资源文件放在action同目录下, 命名格式 action同名 + 国家代码 + 语言代码

I18nAction_zh_CN.properties

label.name=userName_zh_CN

I18nAction_en_US.properties

label.name=userName_en_US

JavaWeb -- Struts2 ResultType细化, 国际化的更多相关文章

  1. struts2中的国际化

    [java] view plaincopy 实现struts2中国际化其实非常简单 首先,struts2中的国际化是通过资源文件来配置的. 资源文件分为:action类级,package类级,还有we ...

  2. Struts2学习笔记 国际化(Internationalization)

    概述 国际化(Internationalization),通途的讲,就是让软件实现对多种语言的支持.可以通过简单的设置就可以从一种语言切换到另一种语言.用的最多的地方就是在应用程序的界面表示上.我们经 ...

  3. Struts2 资源配置文件国际化

    Struts2 资源配置文件国际化 Struts2资源文件的命名规范:basename_language_country.properties Struts2国际化如果系统同时存在资源文件.类文件,系 ...

  4. Struts2入门(六)——国际化

    一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...

  5. JavaWeb之多语言国际化

    这周打算把国际化.JDBC和XML学习一下,从下周就开始学习三大框架,再坚持一个半月吧就能入门JavaWeb了,上周周末两天过的真是生不如死,两天坐在家里,醒来就写博客,原本在公司也自己操作了一遍,其 ...

  6. Struts2之i18N国际化

    对于i18n其实没有太多内容,一般的公司用不到这些内容,除非是跨国公司,但即便是跨国公司也不一定会使用i18n来进行国际化处理,所以本篇内容仅供大家了解,不做深入的探讨,希望通过本篇内容,可以帮助大家 ...

  7. java struts2入门学习---国际化

    一.国际化的概念 1.不同国家的人访问同一个网站,显示的语言不同. 2.对JSP页面进行国际化 属性(properties)文件命名规则:基名---语言--国家如, message_zh_CN.pro ...

  8. 超全面的JavaWeb笔记day20<监听器&国际化>

    JavaWeb监听器 三大组件: l Servlet l Listener l Filter Listener:监听器 1. 初次相见:AWT 2. 二次相见:SAX 监听器: l 它是一个接口,内容 ...

  9. JavaWeb -- Struts2 验证框架

    1. 验证框架 示例 表单提交Jsp, reg.jsp <%@ page language="java" contentType="text/html; chars ...

随机推荐

  1. iOS nsstring 截取字符前后字符串

    // Str = @"PEK_LHR" NSRange range = [trafficeStr rangeOfString:@"_" options:NSBa ...

  2. iOS 计算某个月的天数 计算某天的星期

    // 某年某月的天数 - (NSInteger)dayCount:(NSInteger)years { NSInteger count = ; ; i <= ; i++) { == i) { = ...

  3. [HackerRank] The Longest Common Subsequence

    This is the classic LCS problem. Since it requires you to print one longest common subsequence, just ...

  4. Cutoff frequency

    Cutoff frequency - Wikipedia https://en.wikipedia.org/wiki/Cutoff_frequency In physics and electrica ...

  5. Tunneling protocol

    w https://en.wikipedia.org/wiki/Tunneling_protocol

  6. centos7在vmware上无法上网

    centos7在虚拟机中设置NAT后也无法上网! 首先激活网卡!打开桌面右键在终端中打开:cd /etc/sysconfig/network-scripts/ls 找到以ifcfg开头的,如ifcfg ...

  7. elastic search安装与本地测试

    elastic search安装与本地测试 elastic search是一个全文搜索引擎 教程: 综合:http://www.ruanyifeng.com/blog/2017/08/elastics ...

  8. If 条件控制 & while循环语句

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: if 语句 Python中if语句的一般形式如下所示: i ...

  9. Django - 权限分配、权限组件与CRM整合

    一.权限分配 需求:为用户分配角色,为角色分配权限,如下图效果: 1.视图代码: from django.shortcuts import render from django.http import ...

  10. Django项目在nginx上面的部署(django+flup+nginx)

    首先说下需要用到的软件1.python环境因为我用的centos6.2 上面自带了python2.6.6的环境.所以就可以不用安装了.2.Django环境我们这里用easy_install的方式来安装 ...