Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32167
  • 博文数量: 16
  • 博客积分: 530
  • 博客等级: 中士
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-29 18:52
文章分类

全部博文(16)

文章存档

2008年(16)

我的朋友
最近访客

分类:

2008-04-30 00:49:40

在HTML中,可以利用的< META >标签实现Web的自动跳转。
例如:在Web上显示一段欢迎信息,隔一定秒数后,自动跳转到其他的Web页面,由此可以造成新奇的效果。
实现方法是在< HEAD >与< /HEAD >标签之间加上如下语句:
< meta http-equiv="Refresh" content="秒数; url=跳转的文件或地址" > ,
在Struts 2的blank这个例子中index.html就是这样做的:
< META HTTP-EQUIV="Refresh" CONTENT="0;URL=example/HelloWorld.action" >,即:立即向服务器发出请求example/HelloWorld.action,
请求example命名空间中的名为HelloWorld的Action,这个可以在\WEB-INF\classes\example.xml中找到。
HelloWorld Action执行成功之后,返回给客户端的是/example/HelloWorld.jsp。这里如果用HelloWorld可以吗?答:不可以,这样构成死循环了!
打开HelloWorld.jsp,首先是通过输出一个国际化字符串,这个可以在\WEB-INF\classes\example\package.properties中找到。命名?位置?
然后通过输出Action的属性,即HelloWorld这个类的属性,这个可以在\WEB-INF\src\java\example\HelloWorld.java中找到。
然后通过定义一个url地址变量,准备用在English中在页面上显示一个超链接,
可以在中嵌套子标记,用来传递请求参数,奇怪的是在HelloWorld Action中并没有处理request_locale这个参数,
然而request_locale确实是发挥了作用。即:有效。
why?
哦,原来在Struts 2.0中,通过ActionContext.getContext().setLocale(Locale arg)可以设置用户的默认语言。
Struts 2.0为您提供了一个名i18n的拦截器(Interceptor),并在默认情况下将其注册到拦截器链(Interceptor chain)中。
它的原理为在执行Action方法前,i18n拦截器查找请求中的一个名为"request_locale"的参数。
如果其存在,拦截器就将其作为参数实例化Locale对象,并将其设为用户默认的区域(Locale),最后,将此Locale对象保存在session的名为“WW_TRANS_I18N_LOCALE”的属性中。
真晕!
blank中其他的东东去哪儿了?通过index.html到不了啊!
再看看\WEB-INF\classes\example.xml,输入,
OK,入口界面出来了,其实Welcome只是个jsp,但是这里必须输入Welcome.action,否则struts 2不认识。
在Welcome.action中主要就是用了在页面上显示了几个超链接。
其中,在example.xml映射到Login.class,执行它的input方法,但是Login.class中没有input方法,怪!
所以,程序会跟着input这个result响应/example/Login.jsp。
随便输入点东东,Login Action返回success,接着响应了/example/Menu.action,其实Menu也是个jsp,这里硬给加上了后缀。
登陆页面如果不输入,Struts 2回自动调用\classes\example\Login-validation.xml验证合法性。
采用stuts 2的校验框架时,只需要为Aciton按

2)Struts 2的国际化和验证框架都是通过内置的拦截器实现的。

来源:http://kuafu-zhao.javaeye.com/blog/129936

总结:第一次用Eclipse开发Web Project。可以根据自带的Struts2-blank.war文件目录结构,建立自己的Web Project。

阅读(1272) | 评论(0) | 转发(0) |
0

上一篇:初涉Struts2

下一篇:JpetStore学习(一)

给主人留下些什么吧!~~