Struts 2下的helloword(6)

2019-04-08 18:57

failTip=对不起,您不能登录! succTip=欢迎,${0},您已经登录! viewLink=查看作者李刚已出版的图书 bookPageTitle=作者李刚已出版的图书 bookName=书名: user=用户名 pass=密 码 login=登录

因为该资源文件中包含了非西欧字符,因此必须使用native2ascii命令来处理该文件。将上面文件保存在WEB-INF/classes路径下,文件名为“messageResouce.properties”。保存该文件后,必须使用native2ascii命令来处理该文件,处理该文件的命令格式为:

native2ascii messageResouce.properties messageResouce_zh_CN.properties

上面命令将包含非西欧字符的资源文件处理成标准的ASCII格式,处理完成后生成了一份新文件:messageResouce _zh_CN.properties文件。这个文件的文件名符合资源文件的命名格式,资源文件的文件名命名格式为:

basename_语言代码_国家代码.properties

当请求来自简体中文的语言环境时,系统将自动使用这种资源文件中的内容输出。

注意 对于包含非西欧字符的资源文件,一定要使用native2assii命令来处理该文件,否则将看到一堆乱码。 除此之外,还应该提供如下英文语言环境的资源文件。 loginPage=Login Page errorPage=Error Page succPage=Welcome Page failTip=Sorry,You can't log in!

succTip=welcome,{0},you has logged in! viewLink=View LiGang\\'s Books bookPageTitle=LiGang\\'s Books bookName=BookName: user=User Name pass=User Pass login=Login

将上面资源文件保存在WEB-INF/classes路径下,文件名为“messageResouce_en_ US.properties”。当请求来自美国时,系统自动使用这份资源文件的内容输出。

2.7.2 加载资源文件

Struts 2支持在JSP页面中临时加载资源文件,也支持通过全局属性来加载资源文件。通过全局属性加载资源文件更简单,本应用使用全局属性加载Struts 2国际化资源文件。

加载资源文件可以通过struts.properties文件来定义,本应用的struts.properties文件仅有如下一行代码:

//定义Struts 2的资源文件的baseName是messageResource struts.custom.i18n.resources=messageResource

在struts.properties文件中增加上面的代码定义后,表明该应用使用的资源文件的baseName为“messageResouce”——这与我们前面保存资源文件的baseName是一致的。

Struts 2默认加载WEB-INF/classes下的资源文件,在上一节中,我们就是将资源文件保存在该路径下的。如果将该资源文件保存在WEB-INF/classes的子目录下,例如保存在WEB-INF/classes/lee路径下,则需要修改struts.properties中的定义如下:

//定义Struts 2的资源文件的baseName是messageResource,且文件放在WEB-INF/

classes/lee路径下

struts.custom.i18n.resources=lee.messageResource

2.7.3 输出国际化信息

为了让程序可以显示国际化信息,则需要在JSP页面中输出key,而不是直接输出字符串常量。

Struts 2提供了如下两种方式来输出国际化信息:

因此,我们再次修改表现层的JSP页面,使用国际化标签输出国际化信息。修改后的showBook.jsp页面代码如下:

<%@ page language=\contentType=\charset=GBK\<%@taglib prefix=%uri=\

<s:text name=\</head> <body> </p><p> </p><p><caption><s:text name=\<s:iterator value=\status=\<s:if test=\== true\ <s:else> </p><p></s:else> </p><p><s:text name=\<s:property/> </p><p></s:iterator> </body> </html> </p><p>我们发现,上面的JSP页面不再包含任何直接字符串,而是全部通过<s:text name=\来输出国际化提示。 </p><p>再次在浏览器浏览该页面,将看到与图2.7相同的界面。 </p><p>重新设置浏览者所在的语言/区域选项,设置语言/区域选项请先进入“控制面板”,在控制面板中单击“区域和语言选项”,进入如图2.9所示的对话框。 </p><p>如果我们选择“英语(美国)”选项,然后单击“确定”按钮,将设置本地的语言环境为美国英语。 </p><p>再次向服务器请求login.jsp页面,将看到如图2.10所示的页面。 </p><p> 图2.9 设置语言/区域选项 图2.10 程序国际化的效果 如果我们使用FireFox浏览器来浏览该页面时,发现依然显示中文界面——这是因为FireFox的语言环境并不受Windows系统的控制。为了让FireFox也使用美国英语环境,单击FireFox浏览器菜单栏中的“工具”菜单,选择“选项”菜单项,将出现“选项”对话框,单击“高级”按钮,将看到如图2.11所示的界面。 在如图2.11所示的对话框中单击“选择”按钮,将出现“语言和字符编码”对话框,在该对话框下面的下拉列表框中选择“英语/美国 [en-us]”选项,如图2.12所示,然后单击下拉框右边的“添加”按钮,将添加了“英语/美国”的语言环境。并在该对话框上面的列表框中选择“英语/美国 [en-us]”,然后单击“上移”按钮,将该选项移至最上面,让整个页面优先使用英语/美国的环境。 图2.11 设置FireFox的语言环境 图2.12 设置FireFox的语言环境为英语/美国 再次使用FireFox浏览器浏览login.jsp页面,将看到该页面变成了英文界面。 2.8 增加数据校验 </p><p>在上面应用中,即使浏览者输入任何用户名、密码,系统也会处理用户请求。在我们整个HelloWorld应用中,这种空用户名、空密码的情况不会引起太大的问题。但如果数据需要保存到数据库,或者需要根据用户输入的用户名、密码查询数据,这些空输入可能引起异常。 </p><p>为了避免用户的输入引起底层异常,通常我们会在进行业务逻辑操作之前,先执行基本的数据校验。 </p><p>2.8.1 继承ActionSupport </p><p>ActionSupport类是一个工具类,它已经实现了Action接口。除此之外,它还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。 </p><p>在Validatable接口中定义了一个validate()方法,重写该方法,如果校验表单输入域出现错误,则将错误添加到ActionSupport类的fieldErrors域中,然后通过OGNL表达式负责输出。 </p><p>为了让Struts 2增加输入数据校验的功能,改写程序中的LoginAction,增加重写validate方法。修改后的LoginAction类代码如下: </p><p>//Struts 2的Action类就是一个普通的Java类 public class LoginAction { </p><p>//下面是Action内用于封装用户请求参数的两个属性 private String username; private String password; </p><p>//username属性对应的getter方法 public String getUsername() { </p><p>return username; } </p><p>//username属性对应的setter方法 public void setUsername(String username) { </p><p></p> <br /> <p><script type="text/javascript">s("content-m");</script></p> </div> <div class="m-pages"><li><a>共8页: </a></li><li><a href='574891_5.html'>上一页</a></li><li><a href='574891.html'>1</a></li><li><a href='574891_2.html'>2</a></li><li><a href='574891_3.html'>3</a></li><li><a href='574891_4.html'>4</a></li><li><a href='574891_5.html'>5</a></li><li class="thisclass"><a href='#'>6</a></li><li><a href='574891_7.html'>7</a></li><li><a href='574891_8.html'>8</a></li><li><a href='574891_7.html'>下一页</a></li></div> <div class="down-word"> <div class="word-ico"></div> <div class="word-tit"> <span class="docx">Struts 2下的helloword(6).doc</span> <span>将本文的Word文档下载到电脑</span> <span>下载失败或者文档不完整,请联系客服人员解决! </span> </div> <div class="word-pic"><a href="javascript:;">下载这篇word文档</a></div> </div> </article> <div class="art-prenext"> <p>下一篇:<a href="/wenku/zonghe/574890.html">班级操行量化评分细则1</a></p> </div> <script type="text/javascript">s("like-m");</script> <div class="main-tab"><a class="on" href="javascript:;">相关阅读</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a href="/wenku/zonghe/1263351.html" title="石油大学《化工原理二》2021期末考试答案">石油大学《化工原理二》2021期末考试答案</a></li> <li><a href="/wenku/zonghe/1157609.html" title="建筑节能检测习题集(84页)">建筑节能检测习题集(84页)</a></li> <li><a href="/wenku/zonghe/215568.html" title="高考物理(考点解读命题热点突破)专题06 机械">高考物理(考点解读命题热点突破)专题06 机械</a></li> <li><a href="/wenku/zonghe/215769.html" title="1 2014.10.23第一次财务会计理论与实务课堂笔">1 2014.10.23第一次财务会计理论与实务课堂笔</a></li> <li><a href="/wenku/zonghe/215778.html" title="通信资源管理系统介绍(GIS)">通信资源管理系统介绍(GIS)</a></li> <li><a href="/wenku/zonghe/215564.html" title="年产60万吨PTA项目环境影响报告书">年产60万吨PTA项目环境影响报告书</a></li> <li><a href="/wenku/zonghe/215563.html" title="2016小学生读书笔记范文">2016小学生读书笔记范文</a></li> <li><a href="/wenku/zonghe/215562.html" title="Dhlrwk谈中学生英语学习策略">Dhlrwk谈中学生英语学习策略</a></li> <li><a href="/wenku/zonghe/215560.html" title="数电课程设计报告 洗衣机自动控制电路">数电课程设计报告 洗衣机自动控制电路</a></li> <li><a href="/wenku/zonghe/215558.html" title="2018年最新 湖南省长沙市长郡中学2018届上学">2018年最新 湖南省长沙市长郡中学2018届上学</a></li> </ul> </div> <div class="main-tab"><a class="on" href="javascript:;">本类排行</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a href="/wenku/zonghe/175782.html" title="云客服基础考试">云客服基础考试</a></li> <li><a href="/wenku/zonghe/158762.html" title="《红星照耀中国--》名著阅读练习题及答案">《红星照耀中国--》名著阅读练习题及答案</a></li> <li><a href="/wenku/zonghe/176003.html" title="红星照耀中国练习题及答案">红星照耀中国练习题及答案</a></li> <li><a href="/wenku/zonghe/171844.html" title="《红星照耀中国》练习题">《红星照耀中国》练习题</a></li> <li><a href="/wenku/zonghe/159778.html" title="人教部编版2018-2019学年八年级语文上册第一">人教部编版2018-2019学年八年级语文上册第一</a></li> <li><a href="/wenku/zonghe/183326.html" title="化工导论试题">化工导论试题</a></li> <li><a href="/wenku/zonghe/182252.html" title="八年级上册名著导读练习——《红星照耀中国》">八年级上册名著导读练习——《红星照耀中国》</a></li> <li><a href="/wenku/zonghe/162180.html" title="人教版语文八(上)名著导读《红星照耀中国》练">人教版语文八(上)名著导读《红星照耀中国》练</a></li> <li><a href="/wenku/zonghe/185266.html" title="2018年江苏省第八届就业创业知识竞赛题库(全7">2018年江苏省第八届就业创业知识竞赛题库(全7</a></li> <li><a href="/wenku/zonghe/168880.html" title="《红星照耀中国》导读及练习题附答案">《红星照耀中国》导读及练习题附答案</a></li> </ul> </div> </div> <footer class="footer"> <p class="bt-links"><a href="https://m.77cn.com.cn">手机版</a><span class="v-line">|</span><a href="https://www.77cn.com.cn">PC版</a><span class="v-line">|</span><a href="https://m.77cn.com.cn/fww">范文大全</a></p> <p>Copyright © 2019-2022 免费范文网 版权所有<br/> 声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。<br/>客服QQ: 邮箱:tiandhx2@hotmail.com<br/> <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">苏ICP备16052595号-18</a> </p> <div style="display:none;"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6e245478384fea490ec3a2317ee103ab"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> <div class="theme-popover"> <div class="theme-poptit"> <a href="javascript:;" title="关闭" class="close">×</a> <b>注册会员免费下载</b>(下载后可以自由复制和排版) </div> <div class="theme-popbod dform"> <!--<p class="downtit">下载本文档需要支付 <i>7</i> 元</p>--> <!--<p class="chose"><span>支付方式:</span><span class="pay1"><img src="https://www.77cn.com.cn/img/wxpay.jpg" class="over"></span> <span class="pay2"><img src="https://www.77cn.com.cn/img/alipay.jpg"></span></p>--> <!--<div class="youke_pay">--> <!--<div class="wxpay"><a href="javascript:;">微信支付并下载</a></div>--> <!--<div class="alipay" style="display:none;"><a href="javascript:;">支付宝支付并下载</a>--> <!--</div>--> <!--</div>--> <p class='wxpay'><a href='https://www.77cn.com.cn/user/index.php'>马上注册会员</a></p> <p class="downtxt">注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。<br>微信: QQ:</p> </div> </div> <div class="theme-popover-mask"></div> <script> //menu $(".header .menu").on("click", function(){ $("body").append("<div class=\"mask-bg menu-mask-bg\"></div>"); $(".menu-slide").show(); $("html,body").css({height:$(window).innerHeight(), overflow:"hidden"}); setTimeout(function(){ $(".menu-slide").css({transform:"translateX(-50px)"}); },50) }); $("body").on("click", ".menu-mask-bg", function(){ $(".menu-slide").css({transform:"translateX(-100%)"}); $(".menu-mask-bg").remove(); $("html,body").removeAttr("style"); setTimeout(function(){ $(".menu-slide").hide(); },300) }); //search $(".header .search").click(function(){ if($(".search-box").is(":hidden")){ $(this).children("i").removeClass("search-icon").addClass("close-icon"); $(".search-box").fadeIn("fast"); }else{ $(this).children("i").removeClass("close-icon").addClass("search-icon"); $(".search-box").fadeOut("fast"); } }); //nav if($(".nav").length > 0) { var nav = new Swiper(".nav",{ slidesPerView: "auto" }); } </script> <script> $(".pay1 img").click(function () { $(".wxpay").css("display", "block"); $(".alipay").css("display", "none"); $(".pay1 img").addClass("over"); $(".pay2 img").removeClass("over"); }); $(".pay2 img").click(function () { $(".wxpay").css("display", "none"); $(".alipay").css("display", "block"); $(".pay1 img").removeClass("over"); $(".pay2 img").addClass("over"); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { $('.word-pic a').click(function(){ $('.theme-popover-mask').fadeIn(100); $('.theme-popover').slideDown(200); $(".vip-up").hide(); $(".vip-pay").hide(); var downid = '574891' $('.wxpay a').click(function(){ var payurl = 'https://www.77cn.com.cn/hupipay/payment_pay_tz.php?payway=wx&aid='; payurl = payurl.replace('payment', 'youke'); var gotourl = payurl + downid location.href = gotourl; }); $('.alipay a').click(function(){ var payurl = 'https://www.77cn.com.cn/hupipay/payment_pay_tz.php?payway=ali&aid='; payurl = payurl.replace('payment', 'youke'); var gotourl = payurl + downid location.href = gotourl; }); }) $('.theme-poptit .close').click(function(){ $('.theme-popover-mask').fadeOut(100); $('.theme-popover').slideUp(200); }) }) </script> <script src="/js/gobacktop.js" type="text/javascript"></script> </body> </html>