JavaWeb -- Struts2 ResultType细化, 国际化
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细化, 国际化的更多相关文章
- struts2中的国际化
[java] view plaincopy 实现struts2中国际化其实非常简单 首先,struts2中的国际化是通过资源文件来配置的. 资源文件分为:action类级,package类级,还有we ...
- Struts2学习笔记 国际化(Internationalization)
概述 国际化(Internationalization),通途的讲,就是让软件实现对多种语言的支持.可以通过简单的设置就可以从一种语言切换到另一种语言.用的最多的地方就是在应用程序的界面表示上.我们经 ...
- Struts2 资源配置文件国际化
Struts2 资源配置文件国际化 Struts2资源文件的命名规范:basename_language_country.properties Struts2国际化如果系统同时存在资源文件.类文件,系 ...
- Struts2入门(六)——国际化
一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...
- JavaWeb之多语言国际化
这周打算把国际化.JDBC和XML学习一下,从下周就开始学习三大框架,再坚持一个半月吧就能入门JavaWeb了,上周周末两天过的真是生不如死,两天坐在家里,醒来就写博客,原本在公司也自己操作了一遍,其 ...
- Struts2之i18N国际化
对于i18n其实没有太多内容,一般的公司用不到这些内容,除非是跨国公司,但即便是跨国公司也不一定会使用i18n来进行国际化处理,所以本篇内容仅供大家了解,不做深入的探讨,希望通过本篇内容,可以帮助大家 ...
- java struts2入门学习---国际化
一.国际化的概念 1.不同国家的人访问同一个网站,显示的语言不同. 2.对JSP页面进行国际化 属性(properties)文件命名规则:基名---语言--国家如, message_zh_CN.pro ...
- 超全面的JavaWeb笔记day20<监听器&国际化>
JavaWeb监听器 三大组件: l Servlet l Listener l Filter Listener:监听器 1. 初次相见:AWT 2. 二次相见:SAX 监听器: l 它是一个接口,内容 ...
- JavaWeb -- Struts2 验证框架
1. 验证框架 示例 表单提交Jsp, reg.jsp <%@ page language="java" contentType="text/html; chars ...
随机推荐
- 160628、利用Oracle rownum让表排序字段值连续
利用Oracle rownum让表排序字段值连续 1.需求说明 表(eval_index)中有字段如下: 表字段 描述 说明 ID 主键 GROUP_ID 分组编号 SORT_NUM 排序序号 按照分 ...
- 被Chrome下的remove闪了一下腰
有用户反映说购物车删除不了东西,于是有了下面的测试. 浏览器:ie7 ie8 ie9 chrome 代码: <a href="javascript:" onclick=&qu ...
- Vue1.0常用语法
摘要: var vm = new Vue({ el: "选择器", 挂载到页面的那个元素里,即确定vue的作用范围 外部可通过vm.$el访问,得到的是一个原生dom元素,可进行对 ...
- Python菜鸟之路:原生Ajax/Jquery Ajax/IFrame Ajax的选用
原生Ajax Jquery Ajax IFrame Ajax 如果发送的是普通的数据,比如用户简单的输入.选择的值,推荐使用Jquery ,其次用XMLHttpRquest对象,最次使用IFrame ...
- List 接口常用子类及其特点
List 常用子类: - Vector: 内部是数组数据结构,是同步的. 增删, 查询都很慢 - ArrayList: 内部是数组数据结构,是不同步的,替代了 Vector,不同步的效率较高. 特点: ...
- 转!!Java的三种代理模式
转自 http://www.cnblogs.com/cenyu/p/6289209.html 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象 ...
- Python(数据库安装与基本语句)
一.数据库相关概念 1.两种硬件扩展方式 a.垂直扩展:针对一台计算机 b.水平扩展:多台普通计算机 2.数据库相关概念 数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端) ...
- android studio中取消关联git
Android studio取消关联Git 步骤如下 settings->version control 这里是已经取消关联的 如果关联 按住减号即可
- python16_day07【class】
一.初识类 1.类的两种作用:属性引用和实例化 class Garen: #定义英雄盖伦的类,不同的玩家可以用它实例出自己英雄; camp='Demacia' #所有玩家的英雄(盖伦)的阵营都是Dem ...
- beego——构造查询
QueryBuilder提供了一个简单.流畅的SQL查询构造器.在不影响代码可读性的前提下用来快速的建立SQL语句. QueryBuilder在功能上与ORM重合,但是个由利弊,ORM更适合用于简单的 ...