struts2中国际化问题及标签问题(按钮同一行显示)

Phoenix Slade 2011-02-16 07:45:02
本人做个论坛,现在刚做了个注册页面,测试中select性别选项中为什么不显示文字,而且用struts2标签时 注册 和 重置 两按钮能显示在同一行上,但是非常小,按钮上的文字看不见,怎么回事,求高手帮忙?
部分代码如下(本人才做到这)
一、globalMessages_en_US.properties:
userLogin=UserLogin
usersName=UsersName
userPassword=UserPassword
userRePassword=UserRePassword
userEmail=UserEmail
userNickname=UserNickname
userBirthday=UserBirthday
sex=Sex
userPoints=UserPoints
userRemark=UserRemark
sex.male=Men
sex.female=Women
Login=Login
Register=Register
Reset=Reset
youke=YouKe
welcome=Welcome
userRegister=UserRegister
adminLogin=AdminLogin

二、globalMessages_zh_CN.properties:
UserLogin=\u7528\u6237\u767B\u5F55 --用户登录
UsersName=\u7528\u6237\u540D --用户名
UserPassword=\u5BC6\u7801 --密码
UserRePassword=\u91CD\u590D\u5BC6\u7801 --重复密码
UserEmail=\u90AE\u7BB1 --邮箱
UserNickname=\u6635\u79F0 --昵称
UserBirthday=\u751F\u65E5 --生日
Sex=\u6027\u522B --性别
Men=\u7537 --性别 ‘男’
Women=\u5973 --性别 ‘女’
Login=\u767B\u5F55 --登录
Register=\u6CE8\u518C --注册
Reset=\u91CD\u7F6E --重置
YouKe=\u6E38\u5BA2 --游客
Welcome=\u6B22\u8FCE\u5149\u4E34\u6C47\u667ABBS --欢迎光临***BBS
UserRegister=\u7528\u6237\u6CE8\u518C --用户注册
AdminLogin=\u7BA1\u7406\u5458\u767B\u5F55 --管理员登录

三、template文件夹下建立xhtml文件夹,在再其下建立component.jsp页面(使注册和重置两按钮在一行上)
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<tr>
<td><s:submit value="%{parameters.submit}" theme="simple" /></td>
<td><s:reset value="%{parameters.reset}" theme="simple" /></td>
</tr>

四、JSP页面中代码如下
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ taglib uri="/struts-dojo-tags" prefix="sd"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<s:head theme="xhtml" />
<sd:head parseContent="true" />
<title><s:text name="UserLogin" /></title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<h5 align="right">
<s:text name="YouKe" />
<s:text name="Welcome" />
<a href="enroll.jsp"><s:text name="UserRegister" />
</a>
<s:text name="UserLogin" />
<s:text name="AdminLogin" />
</h5>
<hr />
<body>
<center>
<h3>
<s:text name="UserRegister" />
</h3>
<s:form action="enrollAction" method="post">
<s:textfield name="usersName" key="UsersName" />
<s:password name="userPassword" key="UserPassword" />
<s:password name="userRePassword" key="UserRePassword" />
<s:textfield name="userNickname" key="UserNickname" />
<sd:datetimepicker name="userBirthday" key="UserBirthday"
displayFormat="yyyy-MM-dd" />
<s:select name="sex" key="Sex"
list="#{1:getText('sex.male'),2:getText('sex.female')}" value="1" />
<s:textfield name="userEmal" key="UserEmail" />
<s:component template="component.jsp">
<s:param name="submit" value="Register" />
<s:param name="reset" value="Reset" />
</s:component>
</s:form>
</center>
</body>
</html>

求高手帮解答啊,这做到一半下面的还没做,两问题:1、jsp页面中下拉列表没有项(也就是没有文字显示) 2、jsp页面中 注册 重置 两按钮能显示在同一行上,但是特别小,而且按钮上文字显示不出来,主要是太小了,大家帮我看看啊?!!!
...全文
523 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phoenix Slade 2011-02-17
  • 打赏
  • 举报
回复
另外,数据校验也错误 了啊 直接通过了 跟本没校验啊
六、action包中的EnrollAction.java类
package action;

import users.Users;
import com.opensymphony.xwork2.ActionSupport;
import config.Forum;

public class EnrollAction extends ActionSupport {
private Users users;
private String userRePassword;

public String getUserRePassword() {
return userRePassword;
}

public void setUserRePassword(String userRePassword) {
this.userRePassword = userRePassword;
}

public Users getUsers() {
return users;
}

public void setUsers(Users users) {
this.users = users;
}

public String execute() throws Exception {
if (users != null) {
users.setUserPoints(0); // 设置新用户积分为0
Forum forum = new Forum();
forum.saveUsers(users);// 保存新用户
}
return SUCCESS;
}

public void validate() {
Forum forum = new Forum();
boolean flag = forum.judgeUserName(users.getUserName());
if (flag) {
addFieldError("users.userName", "用户名已经存在!");
}
if (!userRePassword.equals(users.getUserPassword())) {
addFieldError("userRePassword", "两次输入的密码不一致!");
}
}
}


七、EnrollAction-validation.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="users.userName">
<field-validator type="required">
<message>用户名不能为null!</message>
</field-validator>
<field-validator type="requiredstring">
<message>用户名不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{6,16})]]></param>
<message>用户名必须是6-16个字符</message>
</field-validator>
</field>

<field name="users.userNickname">
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,20})]]></param>
<message>昵称必须是4-20个字符</message>
</field-validator>
</field>

<field name="users.userBirthday">
<field-validator type="date">
<param name="max">2015-12-31</param>
<param name="min">1909-01-01</param>
<message>生日不符合规范!</message>
</field-validator>
</field>

<validator type="email">
<param name="fieldName">users.userEmail</param>
<message>邮箱格式错误!</message>
</validator>
<!--
<validator type="fieldexpression">
<param name="fieldName">users.userPassword</param>
<param name="expression"><![CDATA[(users.userPassword==userRePassword)]]></param>
<message>两次输入密码不一致!</message>
</validator>
-->
</validators>

大家邦我找找啊,那个#4楼的我怎么还是没有啊,提交action中下拉菜单中就有了啊!但是不通过数据校验啊 我直接提交到action前应数据校验的啊 可是这没有啊?


Phoenix Slade 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 redlotus_lyn 的回复:]
1.

<s:submit theme="simple"/>

2.

<s:select name="sex" key="Sex"
list="#{1:getText('sex.male'),2:getText('sex.female')}" value="1" />

写法没有问题,我这边测试通过。
你的资源文件时怎么定义的,是通过struts.custom.i18n.re……
[/Quote]

<!-- 指定编码为gb2312 -->
<constant name="struts.i18n.encoding" value="gb2312" />
<!-- 设置国际化 -->
<constant name="struts.custom.i18n.resources" value="globalMessages" />
这两个中是不是只要一个啊?
Phoenix Slade 2011-02-17
  • 打赏
  • 举报
回复
五、struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 指定编码为gb2312 -->
<constant name="struts.i18n.encoding" value="gb2312" />
<!-- 设置国际化 -->
<constant name="struts.custom.i18n.resources" value="globalMessages" />
<include file="struts-default.xml" />
<package name="BBS" extends="struts-default" namespace="/BBS">
<!-- 用户注册页面 表单提交后的enrollAction-->
<action name="enroll" class="action.EnrollAction">
<result name="input">/enroll.jsp</result>
<result name="success">/login.jsp</result>
</action>
</package>
</struts>

xihuanni0509 2011-02-17
  • 打赏
  • 举报
回复
没看出来
redlotus_lyn 2011-02-17
  • 打赏
  • 举报
回复
1.

<s:submit theme="simple"/>

2.

<s:select name="sex" key="Sex"
list="#{1:getText('sex.male'),2:getText('sex.female')}" value="1" />

写法没有问题,我这边测试通过。
你的资源文件时怎么定义的,是通过struts.custom.i18n.resourecs设置的吗?
Phoenix Slade 2011-02-17
  • 打赏
  • 举报
回复
设置标签主题为simple 如果设置了 则那个标签datetimepicker没用啊,还有 globalMessages_zh_CN.properties中没有sex.male和sex.female 我是想在英文页面中显示 男 为Men 女 为 Women 啊
yanting273666110 2011-02-17
  • 打赏
  • 举报
回复
做什么都要仔细啊,呵呵...





轻轻的路过一下
redlotus_lyn 2011-02-16
  • 打赏
  • 举报
回复
1.设置标签主题为simple

1>.<s:form theme="simple">
2>.在struts.xml或struts.properties中设置struts.ui.theme = simple

2.<s:select />

globalMessages_zh_CN.properties中没有sex.male和sex.female
ruisheng_412 2011-02-16
  • 打赏
  • 举报
回复
1,from标签中 theme="simple"
2,<s:select标签貌似写的有点问题(不确定)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧