|
Posted on 2006-07-18 22:27 大大毛 阅读(306) 评论(0) 编辑 收藏 所属分类: Struts
2.简单的Struts应用 helloapp
应用需求: 1.接受name输入 2.不允许name为空 3.如果是特定姓名,则不向其打招呼 4.满足条件则向其问好
例程: 可能由于本需求很简单,因此例程只使用了一个JSP作为视图,从struts-config.xml的设计视图上可以看到逻辑显得很乱
具体步骤(Myeclipse): 1.先建一个项目,选择J2EE下的WEB项目 2.在项目上加入Struts框架 3.选择struts-config.xml配置文件可进入设计视图 4.新建一个ActionForm Bean,加入name属性,并根据此ActionForm bean新建一个JSP 5.新建一个Action,可以自行另取名称(不一定必须与form对应),之后还要在Input的JSP文件中将form 的 action改为对应的Action路径,记住要加.do后缀 6.在Myeclipse中设置应用服务器,使用Tomcat5 7.发布
注意事项: ActionForm Bean只能由具体的类进入编辑; Action在设计视图上可以加入ActionForward,但是这样做实际上只是在配置文件中进行了配置,还需要在Action中自行编码进行findForward()才能实现跳转; Action中设置出ActionErrors后,必须this.saveError(request)才会产生作用; Struts配置文件的中文问题: 在XML配置文件中设置的一个配置文件,实际上是一个缺省配置文件,一个资源对象实际上对应多个配置文件(多语言),文件在名称上有要求,据此可以配置多个语言的资源文件; Struts实际上是依靠多个资源文件来实现国际化; Eclipse自身对于配置文件采用的编码方式是ISO8859,因此用它编辑配置文件后,再打开会是一些问号,JSP页面也会显示不正常,需要使用JDK的native2ascii来手工转码,对于某些版本的Eclipse提供了自行设置编码的设置. 用JInto插件可以简化操作,并同时对多个语言的资源文件进行编辑(对照着,很E啊) 多语言效果的测试: IE中的Internet选项/语言,可以看到当前IE所使用的语言,选择需要测试的语言,应用后刷新或重开IE窗口即可(不过测试中失败了好多次). ?:我试着选择一个没有对应资源的语言,但是却没有看到那种使用缺省资源文件的效果,还是中文的. 按书上的,写成ActionErros.add("key",new ActionMessage("key"));的形式在本机上出类转换异常,改成ActionErros("key",new ActionError("key"));的方式通过; <html:cancel />标签: 由ActionForm新建一个JSP时,Form域中是放上了submit和cancel两个按钮的. cancel的用途还不太清楚,但是它可以完成一个submit动作,而且在使用cancel进行提交时,ActionForm的校验没有起作用,直接提交到Action进行处理,从而忽略了视图层的检验
这一章中有两点映象: 1.书上的例程,在各处都广泛地引用到了配置文件,这应该是出于国际化的要求,对于大型项目来说是很重要的; 2.校验的问题,该例程将空值校验放入ActionForm检验中,划归于视图层的检验,而对于特定姓名拒绝打招呼这样的检验,放入Action中,属于业务逻辑.
|