您的位置:首页 > 编程语言 > Java开发

Day 14 Struts

2017-02-08 09:08 204 查看
一.概述

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;
}

@Override
public 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>
<bod
4000
y>
<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不是单例的,是线程安全的





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: