码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2的配置及入门案例

时间:2016-09-06 13:35:51      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

                                                                Struts2的配置及入门案例

步骤一、创建JavaWeb项目

步骤二、导入Struts2框架所需的基础jar文件添加到lib目录下

技术分享

 

步骤三、在web.xml文件中配置StrutsPrepareAndExecuteFilter

 Struts2框架是基于MVC模式开发的,它提供了一个核心控制器,用于对所有的请求进行统一管理,这个控制器是由一个名为StrutsPrepareAndExecuteFilter的Servlet过滤器来充当

注意:关于Struts2的核心控制器配置,早期Struts2版本的核心控制器为技术分享

而2.1.3之后的版本普遍采用技术分享。我们需要根据自己的Struts2的版本进行配置

在web-app节点下配置

技术分享

步骤四、编写Action类

一个action类就是一段只有特定URL被请求时才会执行的代码,StrutsPrepareAndExecuteFilter根据请求URL的不同,来执行对应的action,在Struts2中,action执行的结果(成功或失败)通常都对应着一个要呈现给用户的result

 1 package cn.hmy.action;
 2 
 3 import com.opensymphony.xwork2.Action;
 4 
 5 public class HellAction implements Action{
 6     
 7     private String name; 
 8 
 9     public String execute() throws Exception {
10         this.setName("hello,"+this.getName());
11         return "success";
12     }
13 
14     public String getName() {
15         return name;
16     }
17 
18     public void setName(String name) {
19         this.name = name;
20     }
21 
22 }

 

步骤五、编写结果页面

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 <%@taglib uri="/struts-tags" prefix="s" %>
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>Hello</title>
13     
14   </head>
15   
16   <body>
17     <div>
18         <h1>
19         <!--显示Struts Action中的message的属性内容  -->
20         <s:property value="name"/>
21         </h1>
22     </div>
23     <hr/>
24     <div>
25       <form action="hello" method="post">
26                     请输入您的姓名:<input name="name" type="text"/>
27                     <input type="submit" value="提交"/>
28       </form>
29     </div>
30   </body>
31 </html>

 

步骤五、创建Struts2的配置文件。在src目录下创建struts.xml文件

技术分享

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 <struts>
 6 
 7     <constant name="struts.devMode" value="true"></constant>
 8     <package name="default" namespace="/" extends="struts-default">
 9     
10         <!--第二个loginAcrion的配置  -->
11         <action name="login" class="cn.hmy.action.LoginAction">
12             <result name="success">success.jsp</result>
13             <result name="login">login.jsp</result>
14         </action>
15 
16 
17         <!-- 第一个hellAction的配置 -->
18         <action name="hello" class="cn.hmy.action.HellAction">
19             <result name="success">index.jsp</result>
20         </action>
21 
22     </package>
23 </struts>

在struts.xml文件中,每一个result属性的name名称都要与Action中返回的逻辑名称保持一致;否则,程序在运行时将无法正确运行

技术分享

技术分享

技术分享

步骤五、编译部署并启动服务器,访问index.jsp

技术分享

 

用debug标签查看值栈信息

 

技术分享

 

Struts2访问servlet API对象的两种方式

1.与servlet API解耦的访问方式

001.使用ActionContex类获取Servlet API对象对应的Map对象

   为了避免与Servlet API耦合在一起,方便Action类的测试,Struts2框架使用了普通的Map对象替代了Servlet API中的HttpServletRequest、HttpServletResponse和ServletContext.在Action类中,可以直接访问HttpServletRequest、HttpSession和ServletContext对应的Map对象,Struts2提供了com.opensymphony.xwork2.ActionContext类获取ServletAPI对象对应的Map对象

   public Object get(Object key)

   ActionContext类没有提供getRequest()这样的方法来获取HttpServletRequest对应的Map对象,要想得到HttpServletRequest对象对应的Map对象需要为get()方法传递request参数

 

2.与Servlet API耦合的访问方式

 

Struts2的配置及入门案例

标签:

原文地址:http://www.cnblogs.com/hmy-1365/p/5825546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!