struts2 demo之blank

本文详细介绍了Struts2框架的应用实例,包括如何使用<META>标签实现Web页面自动跳转、Struts2的国际化及验证框架实现原理。同时探讨了Action处理流程及拦截器的作用。

在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的国际化和验证框架都是通过内置的拦截器实现的。

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值