Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
This is version 2.
It is not the current version, and thus it cannot be edited. Part III: 创建Actions和JSPs - 在AppFuse架构下创建Struts 的Actions和JSPs。
关于本教程本教程将向你展示如何创建一个Struts Action,一个JUnit Test(使用 StrutsTestCase),和一个form的JSP,我们创建的这个Action将与教程创建管理器Manager创建的PersonManager交互。通常情况下,AppFuse使用Struts作为它的web框架,作为1.6+,你可以使用Spring或者WebWork作为web框架,在1.7, 增加了对JSF和Tapestry的支持。 如果希望安装struts以外的web框架,只需转到extras目录下你所期望安装的框架目录下,在相应目录下的README.txt文件会有进一步的说明,针对其他几个框架的教程列在下面。
让我们从创建一个新的Struts Action和JSP作为开始。
目录
为创建generate PersonForm对Person添加XDoclet Tags [#1]我们首先在web层为Struts创建PersonForm对象,为此,我们需要对Person.java添加标签来产生我们的Struts ActionForm,在Person.java的JavaDoc添加@struts.form标签(如果你需要一个实例,可以参考User.java):
使用XDoclet创建骨架JSPs [#2]在这一步,你将会创建来显示Person对象信息的JSP页面,它会包括Strut的JSP标签用来表现Person.java每一个属性,AppGen工具建立在一个StrutsGen工具上,用来做这件事,这个StrutsGen工具起初由Erik Hatcher编写,它只是一些XDoclet模版和一些附加类,所有的这些文件在extras/appgen目录里。以下是生成JSP和包含标签及表单元素属性文件的简单步骤
# -- person form -- personForm.id=Id personForm.firstName=First Name personForm.lastName=Last Name person.added=Information for <strong>{0}</strong> has been added successfully. person.updated=Information for <strong>{0}</strong> has been updated successfully. person.deleted=Information for <strong>{0}</strong> has been deleted successfully. # -- person list page -- personList.title=Person List personList.heading=Persons # -- person detail page -- personDetail.title=Person Detail personDetail.heading=Person Information
AppFuse的web应用安全机制确认所有的*.html形式的访问是被保护的(除了/signup.html和/passwordHint.html),这保证了客户必须通过Action来访问JSP(或者至少pages中的一些)。 注意:如果你想为某一页定制CSS,你必须在文件的开头添加<body id="pageName"/>,这会被SiteMesh看到并且应用到最终的页面,然后你可以一页一页的定制你的CSS,就像如下的方式:body#pageName element.class { background-color: blue }
如上,我们在文件里添加"personForm.*"关键字,我们为什么使用personDetail而不是personForm作为标题呢?最好的一个原因是我们需要区分form的标签和页面上的文本,另一个原因是*Form.*的形式给你数据库里所有的字段更好的展现形式。 最近我有一个客户期望数据库里的所有字段是可查询的,这样作就会比较容易,我只需要查看ApplicationResources.properties中的保存的所有关键字来寻找"Form.",然后记录下来,在用户界面下,用户只需要输入想查找的项目和字段。我对能够在项目里区分对待Form和Detail感到高兴! 创建测试PersonAction的PersonActionTest [#3]为了给PersonAction创建StrutsTestCase Test,首先要在test/web/**/action目录下创建PersonActionTest.java文件:
Attachments:
|