struts2国际化及登录验证
来源:互联网 发布:sql mdf是什么文件 编辑:程序博客网 时间:2024/06/05 21:15
当今世界是一个地球村,互联网飞速发展,为了开发的网站可以适合不同国家不同语种的人浏览,应用开发者必须与时俱进,开发出对应的应用,这就涉及到了国际化。
先看程序:
登录界面index.jsp:
<body> <s:form action="login!login_main" method="post"> <s:textfield name="userbean.name" key="uname"><s:fielderror fieldName="username"></s:fielderror></s:textfield> <s:password name="userbean.password" key="upass"><s:fielderror fieldName="userpass"></s:fielderror></s:password> <s:submit label="提交"></s:submit> </s:form> <s:actionerror /><!-- 在用户名或者密码错误时显示错误信息,错误信息在action中用addFieldError设置 --></body>
验证登录的action:LoginAction.java:
package com.sc.action;import java.util.Iterator;import java.util.List;import javax.servlet.http.HttpSession;import com.sc.dao.YongHuCaoZuo;import com.sc.javabean.UserBean;public class LoginAction extends BaseAction {YongHuCaoZuo yonghucaozuo = new YongHuCaoZuo();UserBean userbean;public UserBean getUserbean() {return userbean;}public void setUserbean(UserBean userbean) {this.userbean = userbean;}public void validate() {/* * addActionError("错误内容"):Action级别的错误消息 this.addActionError("错误信息1"); * this.addActionError("错误信息2"); 显示消息的标签是:<s:actionerror />显示全部的 * Action级别的错误消息,可以加CSS * * addFieldError("字段名","错误信息")给一个字段(属性)添加错误消息 this.addFieldError("pwd", * "错误信息1"); this.addFieldError("pwd", "错误信息2"); * 显示消息的方法1:标签是:<s:fielderror />显示全部的错误消息; 显示消息的方法2: <s:fielderror> * <s:param>field1 </s:param> 显示指定的 field1字段的 错误消息 <s:param>field2 * </s:param> 显示指定的 field2字段的 错误消息 </s:fielderror> * 显示消息的方法3:如果什么都不写,则默认显示在相应字段上方 addActionMessage("相关信息") * 需要在action中重写父类的validate方法,对参数进行校验,如果校验失败。则直接写错误信息 * this.addActionMessage("信息1"); this.addActionMessage("信息2"); * 显示消息的标签是:<s2:actionmessage/>可以显示全部的消息 * 注:1、在添加第一个信息之前加上this.clearErrorsAndMessages();用来清空之前加载的错误信息 * 2、如果<head></head>之间加上<s:head/>,<s:actionerror />和<s:fielderror * />会自动加上CSS <s:actionmessage/>则不会加载. **/System.out.println("进行验证...");if (userbean.getName() == null || userbean.getPassword().equals("")) {super.addFieldError("username", getText("error", new String[] { getText("uname") }));}if (userbean.getPassword() == null || userbean.getName().equals("")) {super.addFieldError("userpass", getText("error", new String[] { getText("upass") }));}}// 用户登录的方法// yonghucaozuo是另一个包下的类的实体,本文章中没有显示出来public String login_main() { UserBean user=new UserBean(); HttpSession se=request.getSession(); String sql="select * from user1 where name='"+userbean.getName()+"' and '"+userbean.getPassword()+"'"; List<UserBean> list=yonghucaozuo.dengLu(sql); Iterator it=list.iterator(); if(it.hasNext()) { se.setAttribute("name",userbean.getName()); request.setAttribute("list1", yonghucaozuo.allUSer("select * from user1")); //查询所有用户并显示在页面上 System.out.println(yonghucaozuo.allUSer("select * from user1").size()); return SUCCESS; } else { super.addActionError("用户名或密码错误,请重新输入"); return INPUT; <!--这里必须用input--> } }
struts.xml配置文件:
<constant name="struts.devMode" value="true"></constant><constant name="struts.custom.i18n.resources" value="globalMessage"></constant><package name="struts" extends="struts-default" namespace="/"> <action name="hehe"> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/index.jsp</result> </action> <action name="login" class="com.sc.action.LoginAction"> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/success.jsp</result> <result name="input">/index.jsp</result><!--这里必须用input--> </action></package>
action同包下的配置文件:
LoginAction_en_US.properties
uname=name
upass=password
title=login
error=must be input
.................(更多属性)
LoginAction_zh_ CN.properties
uname=\u59D3\u540D
title=login
error=must be input
.................(更多属性)
LoginAction_zh_ CN.properties
uname=\u59D3\u540D
upass=\u5BC6\u7801
title=\u767B\u5F55\u754C\u9762
error={0}\u5FC5\u987B\u586B.................(更多属性)
jsp国际化思路
步骤一:
在action的.java文件同包下建立特性文件,特性文件名称是(三种):
action类名_language_country.properties
action类名_language.properties
action类名.properties
例如: LoginAction_en_US.properties和LoginAction_zh_ CN.properties分别是英语和汉语的配置文件
步骤二:
在action中写:
/***本方法用于没有输入账户或者密码时返回到登录界面时显示提示信息 */public void validate(){System.out.println("进行验证...");if(userbean.getName()==null||userbean.getPassword().equals("")){ //如果没有输入用户名会返回登录界面提示:用户名必须输入 super.addFieldError("username", getText("error", new String[]{getText("uname")})); } if(userbean.getPassword()==null||userbean.getName().equals("")){ //如果没有输入密码会返回登录界面提示:密码必须输入 super.addFieldError("userpass", getText("error", new String[]{getText("upass")})); }}
步骤三:
在 struts.xml中配置:
<constant name="struts.devMode" value="true"></constant><constant name="struts.custom.i18n.resources" value="globalMessage"></constant><package name="struts" extends="struts-default" namespace="/"> <action name="hehe"> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/index.jsp</result> </action> <action name="login" class="com.sc.action.LoginAction"> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/success.jsp</result> <result name="input">/index.jsp</result><!--这里必须用input--> </action></package>
完成上述步骤,既可以完成登录验证和国际化了 !
完成此功能的过程中,要点击登录一次,才能显示出国际化的效果!
阅读全文
0 0
- struts2国际化及登录验证
- struts2表单验证及国际化实现
- struts2 验证框架、国际化
- struts2表单验证初步及国际化实现(学习总结)
- Struts2框架验证及其国际化
- Struts2国际化和数据验证
- struts2国际化以及后端验证
- struts2登录验证码
- struts2登录验证
- struts2-I18n页面国际化及Action国际化
- Struts2配置及国际化配置
- Struts2转换器、拦截器、验证以及国际化
- Struts2的国际化和验证框架
- Struts2 登陆验证、国际化显示Demo
- struts2 拦截器 登录验证
- struts2 登录(无验证)
- struts2登录验证方法二
- Struts2+mysql登录验证实例
- 基于WiFi 的CSI和RSS混合指纹室内定位
- 如何拿到国内IT巨头的Offer
- Ajax请求PHP后台接口返回信息简单实例
- 监听端口,设置回调接收请求头问题,获取客户端IP
- NOIP 2012 Senior 5
- struts2国际化及登录验证
- 【bzoj1029】[JSOI2007]建筑抢修
- XUtils+TabLayout获取数据
- SoftReference的使用
- opencv角点检测简介
- Twitter-Snowflake,64位自增ID算法详解
- product words
- 详细记录python的range()函数用法
- Android studio的build问题:Error:Execution failed for task ':mystatusbar:buildInfoDebugLoader'.