Struts2学习笔记-01

废话不多说!今天来学习Struts2的相关知识。大笑

开始咯!

首先是框架的搭建!!!

1-jar包准备。

http://struts.apache.org/  下载struts并解压

找到对应的jar包:


struts2-core-2.*.jar    struts2框架核心类库
xwork-core-2.*.jar     xwork类库
ognl-3.*.jar                对象图导航语言(读写对象属性)
freemarker-2.*.jar              UI标签模板语言
commons-lang-3.*.jar
commons-logging-1.*.jar   日志支持
conmons-io-2.*.jar
commons-fileupload-1.2.*.jar文件上传组件(2.1.6版后必须)
javassist-3.*.jar                开源的java字节码操作工具

-------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------

2-创建一个web工程,并将对应的jar包放在lib路径下(这个就不上图了),然后我们来配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>struts2</display-name>
	<!-- struts2的核心控制器是一个 filter 类  -->
	<filter>
		<filter-name>struts2</filter-name>
		<!-- struts2的核心控制器 -->
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<!-- 接收客户端的所有请求 -->
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>


3-第三步我们来配置Struts.xml文件

<?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>
	<!-- struts.xml通常配置一些对整个项目有关的公用配置 以及引入其他的不同的模块配置文件--> 
	<!-- constant表示常量   配置 常量配置可以到 
	struts2-core.2.3.4.jar包中获得default.properties-->
	<!-- 表示允许的struts2的请求后缀,有多个请求后缀可以用逗号隔开 -->
	<constant name="struts.action.extension" value="do,,"/>
	<!-- 开发模式将会输出更多的信息 -->
	<constant name="struts.devMode" value="true"/>
	<!-- 实现热部署,自动重启服务器 --> 
	<constant name="struts.configuration.xml.reload" value="true"/>

	<!-- 一般为了分模块开发,不同的模块可以定义一个对应的xml 
	文件,并通过include引入到struts.xml文件中 -->
	<include file="struts-user.xml"/>
	
</struts>

※<include file="struts-user.xml"/>  下面我们再来说明。

4-创建一个业务逻辑控制器(UserAction)

/**
 *自己编写的action类可以不继承ActionSupport,不继承直接使用自己编写的类不会出错
  但大多数情况下要继承ActionSupport类或者实现Action接口,因为ActionSupport类中
  封装了大多需要的常量,继承后可以直接使用这些常量而不需要自己再去定义了。 
 */

public class UserAction extends ActionSupport {

	private User user; //一个普通的javabean,里面只写了name和password属性,并提供了getter,setter方法,这里不贴代码了。
	
	public String login(){//登录的方法,没有判断,直接请求过来就返回一个逻辑视图名 SUCCESS
		System.out.println("login======="+user);
		return SUCCESS;
	}
	
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	
}

5-现在到我们的struts-user.xml上场了

<?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>
	<package name="user" extends="struts-default">
		
		<action name="login" class="org.jay.struts2.action.UserAction"
			method="login">
			<result>index.html</result>
			<result name="error">error.jsp</result>
			<!-- 一般struts框架在执行出现异常的时候将返回一个input -->
			<result name="input">error.jsp</result>
		</action>
	</package>

</struts>
#package表示一个包,为了方便项目的分模块开发,一般将对相同的数据的操作放在同一个包中进行管理。
#一个struts.xml文件中可以存在多个不同名称的package
 package中可以存在多个不同名称的action
 package的name表示一个分区不同包的名称
 extends表示本package继承一个什么父包
 action表示指定一个不同的请求处理
 class表示请求的业务逻辑处理的具体类
 method表示当请求本action的时候,执行class(业务逻辑类)中的什么方法,如果没有指定method将默认执行execute方法。
 result表示对应的响应客户端资源,当中的name表示逻辑名,将和UserAction类中的login方法返回的字符串进行匹配,匹配上了就返回result中对应的资源去响应客户端,当name没有指定的时候默认表示 success 注意:逻辑视图名,对大小写敏感!
 struts-default是struts框架的一个默认配置包,我们继承这个包可以非常方便的使用struts框架提供的通用功能。

5-好了,基本上就这样了,一个简单的struts程序就搞定了! 再上个登录的界面吧!

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>登录</title>
    </head>
    <body>
        <h1>登录</h1>
<form action="login" method="get">        //注意这里的login要和struts-user.xml文件中的action中的name同名
        <table width="200" border="1">
            <tr>
                <td>
                	用户名:
                </td>
                <td>
                	<input type="text" name="user.name">
                </td>
            </tr>
            <tr>
                <td>
                	密  码:
                </td>
                <td>
                	<input type="password" name="user.password">
                </td>

            </tr>
			<tr>
                <td>
                	<input type="submit" value="登录">
                </td>
                <td>
                	<input type="reset" value="重置">
                </td>

            </tr>
        </table>
</form>
    </body>
</html>

--------------------------------------------------------------------------------------------------------------------------------------------------

最后希望能帮助到刚接触struts的童鞋!如有错漏之处,希望大家指出!不胜感激!我们共同进步!

--------------------------------------------------------------------------------------------------------------------------------------------------

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值