struts2 demo之blank

在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确实是发挥了作用。即:http://localhost:8080/struts2-blank-2.0.9/example/HelloWorld.action?request_locale=en有效。
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,输入http://localhost:8080/struts2-blank-2.0.9/example/Welcome.action,
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按 -validation.xml提供一个校验文件即可,该文件放在Acion class相同路径下。
哦,原来是Struts 2.0为您提供了一个名validation的拦截器(Interceptor),并在默认情况下包含在defaultStack中了,直接用就行了。


总结一下:
1)用下面这两个链接就能看到blank所有的东东了,真奇怪Apache为什么在一个例子包含了2块不相干的东东:
http://localhost:8080/struts2-blank-2.0.9/example/HelloWorld.action
http://localhost:8080/struts2-blank-2.0.9/example/Welcome.action
2)Struts 2的国际化和验证框架都是通过内置的拦截器实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值