当点击一个超链接或提交一个HTML表单在Struts2 的 Web应用程序,输入所收集被发送到一个Java类称为操作控制器。当动作执行后,结果选择了一个资源来呈现响应。资源通常是一个JSP,但它也可以是一个PDF文件,Excel电子表格,或一个Java applet 窗口。
假设已经建立开发环境。现在让我们继续为第一个 “Hello World” 的 struts2 项目构建。这个项目的目的是建立一个Web应用程序,它收集用户的姓名,并显示“Hello World” 用户名。我们将创建任何Struts2项目的四个组成部分:
我打算使用Eclipse IDE,所以所有必需的组件将创建一个动态Web项目下。所以,让我们开始创建动态Web项目。
创建动态Web项目:
启动Eclipse,然后再 File > New > Dynamic Web Project 输入工程名称为 HelloWorldStruts2 并设置屏幕中给出其余的选项:
选择在接下来的画面中的所有默认选项和最后检查 Generate Web.xml deployment descriptor 选项. 这将创建一个动态Web项目在Eclipse。现在去 Windows > Show View > Project Explorer, 会看到项目窗口的东西如下:
现在复制下列文件从struts 2 lib 文件夹 C:struts-2.2.3lib 到工程 WEB-INFlib 文件夹,要做到这一点,你可以简单地将以下的所有文件拖放复制到WEB-INF lib文件夹。
- commons-fileupload-x.y.z.jar
- commons-io-x.y.z.jar
- commons-lang-x.y.jar
- commons-logging-x.y.z.jar
- commons-logging-api-x.y.jar
- freemarker-x.y.z.jar
- javassist-.xy.z.GA
- ognl-x.y.z.jar
- struts2-core-x.y.z.jar
- xwork-core.x.y.z.jar
创建动作类:
Action类是 Struts2 应用程序的关键,我们实现的大部分动作类中的业务逻辑。因此,让我们创建一个Java文件HelloWorldAction.java Java Resources > src 在下面给出的内容包名 com.yiibai.struts2 。
Action类响应用户操作,当用户点击一个URL。 Action类中的方法中的一个或多个被执行并返回一个字符串结果。基于结果的值,一个特定的JSP页面的呈现方式。
package com.yiibai.struts2;public class HelloWorldAction{ private String name; public String execute() throws Exception { return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; }}这是一个非常简单的类,一个名为“name”属性。我们有标准的“name”属性的getter和setter方法,并返回字符串“success”的执行方法。
Struts2框架将创建一个对象HelloWorldAction类并调用执行方法在响应用户的动作。把业务逻辑里面的execute方法,最后返回的字符串常量。简单地说为每个网址,必须执行一个动作类,要么就可以直接使用这个类的名称作为操作名,也可以使用struts.xml文件如下所示映射到一些其他的名字。
创建视图
我们需要一个JSP提交最后的消息,这个页面会被称为Struts2框架一个预定义的动作时,会发生这种映射将被定义在struts.xml文件。因此,让我们一起创造在Eclipse项目在WebContent文件夹下面的jsp文件helloWorld.jsp。要做到这一点,右键单击WebContent文件夹在项目资源管理器,选择New >JSP File。 .
taglib指令告诉Servlet容器,这个页面将使用Struts 2的标签,这些标签将之前由s。 s:property标签显示动作类属性"name> HelloWorldAction类的getName()方法返回的值。
创建主页:
我们还需要在WebContent文件夹中创建的index.jsp。该文件将作为初始动作URL,用户可以在其中点击告诉Struts 2框架调用 HelloWorldAction类定义的方法呈现 helloWorld.jsp 视图。
编写了以上的文件还未能实现struts的功能,要对各个文件之间的关系在struts-config.xml文件进行配置。
配置如下:
最后,对工程文件进行发布,启动tomcat,用浏览器测试。
现在,来梳理清楚。根据需求建立功能。根据要求建立form和action文件。最后对struts-config.xml文件进行配置。
测试操作步骤:
1-进入index.jsp导航页面,点击学生学籍查询进入了queryform.jsp页面
2-进入了queryform.jsp页面,在文本框输入学生名中的一个或两个字进行模糊查询。点击模糊查询。
<form action="/Project02/query.do" method="post">
请您输入学生姓名:<input name="sname">
<input type="submit" value="模糊查询">
</form>
Action:指定了action要执行的路径 method:提交的方式--post不显示信息,get显示信息
3-进入了/Project02/query.do 到了QueryAction.java执行。这里为什么是到QueryAction.java文件下执行的呢?
因为配置文件已经完成了配置。注册Action中的path=”/query”就是query.do只是没有了.do后缀。这里已经指定了type类的路径为:project02.QueryAction 所以执行QueryAction.java文件。
4-接下来的就是java文件了,大都能看懂。