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 ...
随机推荐
- 【BZOJ1067】[SCOI2007]降雨量 RMQ+特判
[BZOJ1067][SCOI2007]降雨量 Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年 ...
- zookeeper 事务日志与快照日志
zookeeper日志各类日志简介 zookeeper服务器会产生三类日志:事务日志.快照日志和log4j日志. 在zookeeper默认配置文件zoo.cfg(可以修改文件名)中有一个配置项data ...
- 支付宝SDK的使用方法
前奏 现在随着移动开发的快速发展,越来越多的应用要求在线支付功能.最近做了一个关于支付宝支付功能的应用,在使用支付宝的过程中,遇到一些不必要的弯路,因此,写了这篇文章总结一下关于ios开发如何使用支付 ...
- unset($_COOKIE['wcookie_date'])
foreach ($_COOKIE AS $wk => $wv) { unset($_COOKIE[$wk]); } die(); w 删除cookie
- Learning PHP Design Patterns
Learning PHP Design Patterns CHAPTER 1 Algorithms handle speed of operations, and design patterns ha ...
- php accumulation rockmongo
php -r 'echo substr(sprintf("%o",fileperms("./")),-4);'
- <2014 05 14> Android平台下2D/3D开发攻略
Android通过OpenGL包含了对高性能2D和3D图形的支持,尤其支持OpenGLES API.OpenGL是一个跨平台的图形API,提供了软件操作3D图形硬件的接口.OpenGLES是一个专用于 ...
- css的常用知识点
一.css的引入方式 1.行内引入 直接在标签中定义样式 <p style="background-color: red">test</p> 2.嵌入式引入 ...
- 基于Requests和BeautifulSoup实现“自动登录”
基于Requests和BeautifulSoup实现“自动登录”实例 自动登录抽屉新热榜 #!/usr/bin/env python # -*- coding:utf-8 -*- import req ...
- 005-环境安装【docker、fabric】
1.参考地址:https://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html#install-curl 一.前置条件和系统配置 1.安 ...