分类:
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,首先是通过
然后通过
然后通过
可以在
然而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中主要就是用了
其中
所以,程序会跟着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。