Struts2 学习系列 (1) 环境搭建
2015-11-11 16:41
399 查看
环境搭建开发使用maven
搭建 Struts2 的环境:
加入 maven 包: 更新pox文件
在 web.xml 文件中配置 struts2: 复制 struts\apps\struts2-blank1\WEB-INF\web.xml 文件中的过滤器的配置到当前 web 应用的 web.xml 文件中
在当前 web 应用的 classpath 下添加 struts2 的配置文件 struts.xml
maven文件我在最后给出,现在讲解web和strust中的配置:
经过上面的两个web和strust.xml的配置,基本功能已经完成了,下面我们解释一下各个配置
配置一个 action: 一个 struts2 的请求就是一个 action
name: 对应一个 struts2 的请求的名字(或对一个 servletPath, 但去除 / 和扩展名), 不包含扩展名
class 的默认值为: com.opensymphony.xwork2.ActionSupport
method 的默认值为: execute
result: 结果.默认值:SUCCESS
result: 结果. 表示 action 方法执行后可能返回的一个结果. 所以一个 action 节点可能会有多个 result 子节点.
多个 result 子节点使用 name 来区分
name: 标识一个 result. 和 action 方法的返回值对应. 默认值为 success
type: 表示结果的类型. 默认值为 dispatcher(转发到结果.)
这样的一个基本框架就搭建好了,我们现在来说下action部分
给出一个页面:
基本框架搭建完成了
maven配置,我会把项目存入,提供下载
搭建 Struts2 的环境:
加入 maven 包: 更新pox文件
在 web.xml 文件中配置 struts2: 复制 struts\apps\struts2-blank1\WEB-INF\web.xml 文件中的过滤器的配置到当前 web 应用的 web.xml 文件中
在当前 web 应用的 classpath 下添加 struts2 的配置文件 struts.xml
maven文件我在最后给出,现在讲解web和strust中的配置:
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 指定由spring负责action对象的创建 --> <constant name="struts.objectFactory" value="spring" /> <!-- 所有匹配*.action的请求都由struts2处理 --> <constant name="struts.action.extension" value="action,do" /> <!-- 是否启用开发模式 --> <constant name="struts.devMode" value="true" /> <!-- struts配置文件改动后,是aa否重新加载 --> <constant name="struts.configuration.xml.reload" value="true" /> <!-- 设置浏览器是否缓存静态内容 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 请求参数的编码方式 --> <constant name="struts.i18n.encoding" value="utf-8" /> <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 --> <constant name="struts.i18n.reload" value="true" /> <!-- 文件上传最大值 --> <constant name="struts.multipart.maxSize" value="104857600" /> <!-- 让struts2支持动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <!-- Action名称中是否还是用斜线 --> <constant name="struts.enable.SlashesInActionNames" value="false" /> <!-- 允许标签中使用表达式语法 --> <constant name="struts.tag.altSyntax" value="true" /> <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true --> <constant name="struts.dispatcher.parametersWorkaround" value="false" /> <!-- 注解方式的默认路径 --> <constant name="struts.convention.result.path" value="/WEB-INF/content/" /> <!-- xml方式的请求strust2 --> <package name="hello-world-default" extends="struts-default" namespace="/hello-world-default"> <action name="HelloWordAction" class="org.andy.shop.action.HelloWordAction" method="execute"> <result name="hello_world">/WEB-INF/views/hello_world.jsp</result> </action> </package> </struts>
经过上面的两个web和strust.xml的配置,基本功能已经完成了,下面我们解释一下各个配置
配置一个 action: 一个 struts2 的请求就是一个 action
name: 对应一个 struts2 的请求的名字(或对一个 servletPath, 但去除 / 和扩展名), 不包含扩展名
class 的默认值为: com.opensymphony.xwork2.ActionSupport
method 的默认值为: execute
result: 结果.默认值:SUCCESS
result: 结果. 表示 action 方法执行后可能返回的一个结果. 所以一个 action 节点可能会有多个 result 子节点.
多个 result 子节点使用 name 来区分
name: 标识一个 result. 和 action 方法的返回值对应. 默认值为 success
type: 表示结果的类型. 默认值为 dispatcher(转发到结果.)
这样的一个基本框架就搭建好了,我们现在来说下action部分
package org.andy.shop.action; public class HelloWordAction { private Integer productId; private String productName; private String productDesc; private double productPrice; public Integer getProductId() { return productId; } public void setProductId(Integer productId) { this.productId = productId; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public String getProductDesc() { return productDesc; } public void setProductDesc(String productDesc) { this.productDesc = productDesc; } public double getProductPrice() { return productPrice; } public void setProductPrice(double productPrice) { this.productPrice = productPrice; } public HelloWordAction(Integer productId, String productName, String productDesc, double productPrice) { super(); this.productId = productId; this.productName = productName; this.productDesc = productDesc; this.productPrice = productPrice; } public HelloWordAction() { // TODO Auto-generated constructor stub } @Override public String toString() { return "Product [productId=" + productId + ", productName=" + productName + ", productDesc=" + productDesc + ", productPrice=" + productPrice + "]"; } public String execute(){ System.out.println(productName); System.out.println(productDesc); System.out.println(productPrice); return "hello_world"; } }
给出一个页面:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <form action="hello-world-default/HelloWordAction.action" method="post"> productName:<input type="text" name="productName"><br> productDesc:<input type="text" name="productDesc"><br> productPrice:<input type="text" name="productPrice"><br> <input type="submit" value="提交"> </form> </body> </html>
基本框架搭建完成了
maven配置,我会把项目存入,提供下载
相关文章推荐
- JAXB(Java Architecture for XML Binding)
- 第四章 Controller接口控制器详解(5)——跟着开涛学SpringMVC
- jboss完全可以独立运行 servlet jsp ssh mybits spring mvc
- 公司项目用到Dubbo框架 分享一下自己的测试结果
- 第四章 Controller接口控制器详解 (4)——跟着开涛学SpringMVC
- Spring、Spring自动扫描和管理Bean
- Spring、Spring自动扫描和管理Bean
- 第四章 Controller接口控制器详解(3)——跟着开涛学SpringMVC
- 第四章 Controller接口控制器详解(2)——跟着开涛学SpringMVC
- 04(maven+SSH)网上商城项目实战之Spring mybatis项目搭建
- 第四章 Controller接口控制器详解(1)——跟着开涛学SpringMVC
- spring aop一些名词的理解
- 使用Java和JS访问cookies
- Spring事务配置的五种方式
- 第三章 DispatcherServlet详解 ——跟开涛学SpringMVC
- 为什么Java byte 类型的取值范围是-128~127
- Spring 定时任务配置
- Java学习笔记(七)反射及内部类
- 第二章 Spring MVC入门 —— 跟开涛学SpringMVC
- groovy中List集合的使用