Day 14 Struts

来源:互联网 发布:java排序算法 编辑:程序博客网 时间:2024/05/14 18:03
一.概述
1.Struts2 是一个用来开发 MVC 应用程序的框架. 它提供了 Web 应用程序开发过程中的一些常见问题的解决方案: 
对来自用户的输入数据进行合法性验证
统一的布局
可扩展性
国际化和本地化
支持 Ajax
表单的重复提交
文件的上传下载
…..


二.搭建 Struts2 的环境
1.加入 jar 包: 复制 struts\apps\struts2-blank\WEB-INF\lib 下的所有 jar 包到当前 web 应用的 lib 目录下.
2.在 web.xml 文件中配置 struts2: 复制 struts\apps\struts2-blank1\WEB-INF\web.xml 文件中的过滤器的配置到当前 web 应用的 web.xml 文件中
3.在当前 web 应用的 classpath 下添加 struts2 的配置文件 struts.xml: 复制 struts1\apps\struts2-blank\WEB-INF\classes 下的 struts.xml 文件到当前 web 应用的 src 目录下. 

4.添加 DTD 约束:首选参数->XML->XML Catalog->add(将key type改为URI)


三.helloWord

1.index.jsp

<%@ 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><a href="hello">Hello world</a></body></html>


2.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>    <package name="default" namespace="/" extends="struts-default">        <action name="hello" class="com.hello.abc.Hello" method="toadd">             <result  name="toadd">/WEB-INF/pages/a.jsp</result>        </action>        <action name="hi" class="com.hello.abc.Hello" method="save">             <result  name="save">/WEB-INF/pages/b.jsp</result>        </action>    </package></struts>





3.Hello.java

package com.hello.abc;public class Hello {private String stuname;private int stuage;private String stusex;public String getStuname() {return stuname;}public void setStuname(String stuname) {this.stuname = stuname;}public int getStuage() {return stuage;}public void setStuage(int stuage) {this.stuage = stuage;}public String getStusex() {return stusex;}public void setStusex(String stusex) {this.stusex = stusex;}@Overridepublic String toString() {return "Hello [stuname=" + stuname + ", stuage=" + stuage + ", stusex="+ stusex + "]";}public String toadd(){System.out.println("liu s b");return "toadd";}public String save(){System.out.println("Hello"+this);return "save";}}



4.a.jsp

<%@ 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="hi" method="post">    stuname:<input type="text" name="stuname" ><br>  stuage: <input type="text" name="stuage" ><br>  stusex:<input type="text" name="stusex" ><br>  <input type="submit">   </form></body></html>


5.b.jsp

<%@ 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><h4>学生信息</h4>${stuname}<br>${stuage}<br>${stusex}<br></body></html>


6.web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">    <display-name>Struts Blank</display-name>    <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>/*</url-pattern>    </filter-mapping></web-app>


四.struts.xml

五.action概述

1.action和Action类的区别

1)action:代表一个Struts2的请求

2)Action类:能够处理Struts2请求的类(例如上面例子中的Hello.java)

>特点:

属性的名字必须遵守与 JavaBeans 属性名相同的命名规则. 属性的类型可以是任意类型. 从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生必须有一个不带参的构造器:通过反射创建实例

至少有一个供 struts 在执行这个 action 时调用的方法同一个 Action 类可以包含多个 action 方法. Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例::即Action不是单例的,是线程安全的

                                             
0 0