Struts2 概述:
Struts2 是一个用来开发 MVC 应用程序的框架,他提供了 Web 应用程序开发过程中的一些常见问题的解决方案,比如对于用户输入信息合法性的验证,统一的布局,国际化等,既然有 Struts2 那么肯定有 Struts1,但是从本质上讲 Struts2 不是从 Struts1 扩展而来的,更应该说是一种换了品牌标签的 WebWork 更合适。
struts1 VS struts2
Struts2 环境搭建
新建 Model,并勾选 Struts2 ,之后选择 Struts2 所要使用的 library,你可以直接在新建页面中选择 Download 进行下载,也可以提前下载好 Struts2 所需要的 jar 包自己构建(这里我选择自己构建的 library)
http://struts.apache.org/download.cgi#struts2516 在此页面可以选择自己所要使用 Struts2 版本,同样大家也可以在亿速云进行本地下载:https://www.jb51.net/softs/539810.html
点击下一步之后为自己的 struts2 项目命名(在命名的时候建议在第二栏 Content Root 的路径后改名,若在第一栏中更改只是更改第一栏的,其余两栏不会被更改)
点击 Finish 完成 Struts2 项目的创建,所创建的项目如下
IDEA VS Eclipse
Struts2 HelloWorld
搭建好 Struts2 的开发环境之后我们开始第一个 Struts2 程序的编写,其要求为在一个表单中输入用户的基本信息点击提交后跳转到另一个页面显示用户所输入的信息,在没有学习 Struts2 之前这对于我们来说非常简单,仅需要将页面请求发送到 Servet 中响应请求到另一个页面,使用 EL 和 JSTL 将信息显示即可。对于 Struts2 这当然也算是一个 HelloWorld,我们将借此实例开始 Struts2 各方面的知识讲解。
在 index.jsp 中编写页面代码,供用户输入基本信息,如下:
依据表单 name 属性编写实体类,并创建 getXxx 和 setXxx 方法,Customer.java
在 struts.xml 文件中编写代码处理 struts2 请求
返回显示页面 show.jsp
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="helloWorld" extends="struts-default"> <action name="input" class="com.struts2.hello.test.Customer" method="print"> <result name="print">/show.jsp</result> </action> </package> </struts>
Customer.java
package com.struts2.hello.test; /** * Created by shkstart on 2018/03/24. */ public class Customer { private String userName; private String email; private String address; /* * getXxx() setXxx() 方法 **/ public String print() { System.out.println(new Customer()); return "print"; } @Override public String toString() { return "Customer{" + "userName='" + userName + '\'' + ", email='" + email + '\'' + ", address='" + address + '\'' + '}'; } }
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Input</title> </head> <body> <table> <form action="input.action" method="post"> <tr> <td>UserName</td> <td><input type="text" name="userName"></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email"></td> </tr> <tr> <td>Address</td> <td><input type="text" name="address"></td> </tr> <tr> <td><input type="submit" value="Submit"></td> </tr> </form> </table> </body> </html>
show.jsp(只展示 Body 标签内容)
UserName: ${userName}<br> Email: ${email}<br> Address: ${address}<br>
代码详解
Customer.java 中成员变量和 index.jsp 中的属性一一对应,不忽略大小写;
show.jsp 中用于显示的和 Customer.java 中的成员变量一致,否则无法显示
index.jsp 中的 form 表单 action 值应该设置为struts.xml 文件中的 action 的name 属性
struts.xml 文件中的 action 节点的 method 属性应 Custome.java 中的 String print()
方法,result 节点的 name 属性为
String print()
方法的返回值
result 节点的值为处理了该 struts2 请求后所响应的页面
对于 show.jsp 页面的显示我们在后面会详细讲解有关知识,至此我们 Struts2 的 HelloWorld 就到这里,我相信和我一样的小白跟着做下去应该不会出什么大的差错!!
struts.xml 文件节点
package 属性 --- struts2 使用 package 来组织模块
action 属性 --- 一个 struts2 请求就是一个 action
一个 action 可以有多个 result 子节点,多个 result 子节点使用 name 属性区分
result 节点的 type 属性默认为 dispatcher(转发),表示结果的响应类型
Action VS action
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。