一、
如何获得
ApplicationResources.properties
中的信息
1
、获得默认的资源文件
1 MessageResources messages =
getResources(request);
2
3 String title = messages.getMessage("hello.jsp.title"
);
4
2
、获得默认的资源文件
1 MessageResources resources =
(MessageResources) request.
2
3
getAttribute(Globals.MESSAGES_KEY);
4
3
、获得指定key的资源文件
MessageResources messages
=
getResources(request,
"
en
"
);
其实方法一本质上就是调用方法二来获得
MessageResources
的实例。
首先获得一个封装了
ApplicationResources.properties
信息
的对象
MessageResources
的实例messages,然后调用getMessage(key);来获得key的值
二、
如何打包发布一个WEB应用
在DOC下转到应用的根目录执行jar cvf appName.war *.*
三、
如何在formbean下验证表单
1 ActionErrors errors = new
ActionErrors();
2
3 String array[] = new String[2
];
4
5 array[0] = "xx"
;
6
7 array[1] = "hh"
;
8
9 if(name==null || name.length()<1
)
10
11
{
12
13 errors.add("name",new ActionMessage("kong",false
));
14
15 //对应的key为hello,且hello为动态复合消息,array数组用来替换复合消息中的参数
16
17 errors.add("name",new ActionMessage("hello"
,array));
18
19
}
20
21 return
errors;
22
23
在inputJSP中用
<html:errors/>
获取并显示
四、
在action下处理业务逻辑时返回的错误信息
1 ActionErrors errors =
new ActionErrors();
2
3
String userName
= (String)((HelloForm) form).getUserName();
4
5
6
7
String badUserName = "Monster
";
8
9
10
11
if (userName.equalsIgnoreCase(badUserName)) {
12
13
errors.add("username", new ActionError("hello.dont.talk.to.monster
", badUserName ));
14
15
saveErrors(request, errors); //
绑定到request对象中
16
17
return (
new ActionForward(mapping.getInput()));
18
19
}
20
同样在相应的JSP页面中用用<html:errors/>
获取并显示
五、
JSP
中如何访问action
1
、
<
A href
=
"
<%=request.getContextPath() %>/hello.do
"
>
Link
</
A
>
2
、自动跳转
A_JSP
页面:
<
logic:forward name
=
"
gaga
"
/>
B_struts-config.xml
设置:
<
global
-
forwards
>
<
forward name
=
"
gaga
"
path
=
"
/hello.do
"
></
forward
>
</
global
-
forwards
>
六、
配置错误页面和异常页面:《精通Struts》
page_75
七、
如何在Web应用中访问Locale对象
1
、什么是Locale?
java.util.Locale
类的实例代表一种特定的语言环境和地区
2
如何获得Locale?
²
构造函数
Locale locale
=
new
Locale(
"
en
"
,
"
US
");
Locale locale
=
new
Locale(
"
ch
"
,
"
CH
"
);
²
访问java.util.Locale类的静态常量来获得常用的
Locale
实例
Locale locale
=
Locale.CHINA; (zh_CN)
Locale locale
=
Locale.CHINESE; (zh)
²
通过HttpServletRequest对象来获得客户端的Locale
Locale locale
=
request.getLocale(); // 获得优先使用的Locale
System.out.println(locale);
//
获得所有Locale,从优先级高的依次降序排列并打印出来。
Enumeration locales
=
request.getLocales();
while
(locales.hasMoreElements()) {
Locale element
=
(Locale) locales.nextElement();
System.out.println(element);
}
²
通过HttpSession对象来获得Locale
HttpSession session
=
request.getSession();
Locale locale
=
(Locale) session.
getAttribute(Globals.LOCALE_KEY);
System.out.println(locale);
获得Locale的方法还有很多,其实在Web应用中,很多获得Locale的方法都是不同程度的或者是直接的或者是间接在调用
request.getLocale();
方法。因此有了
HttpServletRequest
,我们可以做很多事情。