Struts框架(三)

Struts标签库的使用

1) 常用的struts tag lib

<bean:write>

<logic:empty>和<logic:notEmpty>

<logic:present>和<logic:notPresent>

<logic:iterator>

举例:

<body> <h1>测试迭代标签</h1> <hr> <table border="1"> <tr> <td>姓名</td> <td>年龄</td> <td>所属组</td> </tr> <logic:empty name="user_list"> <tr> <td colspan="3">没有符合条件的数据</td> </tr> </logic:empty> <logic:notEmpty name="user_list"> <logic:iterate id="user" name="user_list"> <tr> <td> <bean:write name="user" property="username"/> </td> <td> <bean:write name="user" property="age"/> </td> <td> <bean:write name="user" property="group.name"/> </td> </tr> </logic:iterate> </logic:notEmpty> </table> </body>


2)配置国际化支持,在struts-config.xml文件中加入如下配置:

<message-resources parameter="MessageResources" />

最好提供国际化资源文件(MessageResources.properties),将该文件放到src下

消息文本的国际化处理,共有三个步骤:
创建国际化消息
传递国际化消息
显示国际化消息
实例:

public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginActionForm laf = (LoginActionForm)form; String username = laf.getUsername(); String password = laf.getPassword(); ActionMessages messages = new ActionMessages(); try { UserManager.getInstance().login(username, password); //创建国际化消息文本 ActionMessage message = new ActionMessage("user.login.success", username); //ActionMessage message = new ActionMessage("user.login.success", new Object[]{username}); messages.add("loginSuccess1", message); ActionMessage message1 = new ActionMessage("user.login.success", username); messages.add("loginSuccess2", message1); //传递国际化消息文本 this.saveMessages(request, messages); return mapping.findForward("success"); }catch(UserNotFoundException unfe) { unfe.printStackTrace(); //创建国际化消息文本 ActionMessage message = new ActionMessage("user.not.found", username); messages.add("error1", message); //传递国际化消息文本 this.saveErrors(request, messages); }catch(PasswordErrorException pee) { pee.printStackTrace(); //创建国际化消息文本 ActionMessage message = new ActionMessage("user.password.error"); messages.add("error2", message); //传递国际化消息文本 this.saveErrors(request, messages); } return mapping.findForward("error"); } } // 设置Localepublic class ChangeLanguageAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String lang = request.getParameter("lang"); Locale currentLocale = Locale.getDefault(); //默认情况下取得本机的语言 if ("zh".equals(lang)) { currentLocale = new Locale("zh", "CN"); }else if("en".equals(lang)) { currentLocale = new Locale("en", "US"); } //request.getSession().setAttribute(Globals.LOCALE_KEY, currentLocale); this.setLocale(request, currentLocale); return mapping.findForward("index"); } }

国际化资源文件 MessageResources.properties

# -- standard errors -- errors.header=<UL> errors.prefix=<LI><font color="red"> errors.suffix=</font></LI> errors.footer=</UL> user.title=User Login user.username=User Name user.password=Password user.button.login=Login user.login.success={0},Login Success user.not.found=User Not Found,UserName[{0}] user.password.error=Password Error user.login.error=Login Error
MessageResources_en_US.properties 英文
errors.header=<UL> errors.prefix=<LI><font color="red"> errors.suffix=</font></LI> errors.footer=</UL> user.title=User Login user.username=User Name user.password=Password user.button.login=Login user.login.success={0},Login Success user.not.found=User Not Found,UserName[{0}] user.password.error=Password Error user.login.error=Login Error
MessageResources_zh_CN.properties 中文
# -- standard errors -- errors.header=<UL> errors.prefix=<LI><font color="red"> errors.suffix=</font></LI> errors.footer=</UL> user.title=\u7528\u6237\u767b\u5f55 user.username=\u7528\u6237 user.password=\u5bc6\u7801 user.button.login=\u767b\u5f55 user.login.success={0},\u767b\u5f55\u6210\u529f user.not.found=\u7528\u6237\u4e0d\u80fd\u627e\u5230\uff0c\u7528\u6237\u540d\u79f0=[{0}] user.password.error=\u5bc6\u7801\u9519\u8bef user.login.error=\u767b\u5f55\u5931\u8d25


struts-config.xml 配置文件

<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="loginForm" type="com.bjsxt.struts.LoginActionForm"/> </form-beans> <action-mappings> <action path="/login" type="com.bjsxt.struts.LoginAction" name="loginForm" scope="request" validate="false" > <forward name="success" path="/login_success.jsp"/> <forward name="error" path="/login.jsp"/> </action> <action path="/changelang" type="com.bjsxt.struts.ChangeLanguageAction" //转换语言 > <forward name="index" path="/index.jsp"/> </action> </action-mappings> <message-resources parameter="res.MessageResources" /> //配置国际化资源文件必须要添加 </struts-config>



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值