曲靖网站推广,wordpress 播放视频,站群网站源码,上海网站建设 方案Struts2 基础知识学习总结 Struts2 概述#xff1a;Struts2 是一个用来开发 MVC 应用程序的框架#xff0c;他提供了 Web 应用程序开发过程中的一些常见问题的解决方案#xff0c;比如对于用户输入信息合法性的验证#xff0c;统一的布局#xff0c;国际化等#xff0c;既…Struts2 基础知识学习总结 Struts2 概述Struts2 是一个用来开发 MVC 应用程序的框架他提供了 Web 应用程序开发过程中的一些常见问题的解决方案比如对于用户输入信息合法性的验证统一的布局国际化等既然有 Struts2 那么肯定有 Struts1但是从本质上讲 Struts2 不是从 Struts1 扩展而来的更应该说是一种换了品牌标签的 WebWork 更合适。 struts1 VS struts2 struts1 里使用 ActionServlet 作为控制器Struts2 使用过滤器作为控制器Struts1 中每个 HTML 表单都对应一个 ActionForm 实例Struts2 中 HTML 表单将被直接映射到一个 POJOStruts1 的验证逻辑编写在 ActionForm 中Struts2 中的验证逻辑编写在 Action 中Struts1 中 Action 类必须继承 org.apache.struts.action.Action 类Struts2 中任何一个 POJO 都可以是一个 Action 类Struts2 在页面里使用 OGNL 来显示各种对象模型可以不再使用 EL 和 JSTLStruts2 环境搭建 新建 Model并勾选 Struts2 之后选择 Struts2 所要使用的 library你可以直接在新建页面中选择 Download 进行下载也可以提前下载好 Struts2 所需要的 jar 包自己构建这里我选择自己构建的 libraryhttp://struts.apache.org/download.cgi#struts2516 在此页面可以选择自己所要使用 Struts2 版本点击下一步之后为自己的 struts2 项目命名在命名的时候建议在第二栏 Content Root 的路径后改名若在第一栏中更改只是更改第一栏的其余两栏不会被更改点击 Finish 完成 Struts2 项目的创建所创建的项目如下IDEA VS Eclipse 若我们使用 Eclipse 去创建 Struts2 项目则需要在下载的 Struts2 包中已有的项目中去拷贝 struts2 文件的格式和 web.xml 文件的配置IDEA 会为我们自动构建好web.xml 文件在 struts2 包下的 struts\apps\struts2-blank1\WEB-INF\web.xmlstruts.xml 文件在 struts2 包下的 struts\apps\struts2-blank\WEB-INF\classes将其创建于 src 目录下 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 version1.0 encodingUTF-8?!DOCTYPE struts PUBLIC-//Apache Software Foundation//DTD Struts Configuration 2.3//ENhttp://struts.apache.org/dtds/struts-2.3.dtdstrutspackage namehelloWorld extendsstruts-defaultaction nameinput classcom.struts2.hello.test.Customer methodprintresult nameprint/show.jsp/result/action/package/strutsCustomer.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;}Overridepublic String toString() {return Customer{ userName userName \ , email email \ , address address \ };}}index.jsp % page contentTypetext/html;charsetUTF-8 languagejava %htmlheadtitleInput/title/headbodytableform actioninput.action methodposttrtdUserName/tdtdinput typetext nameuserName/td/trtrtdEmail/tdtdinput typetext nameemail/td/trtrtdAddress/tdtdinput typetext nameaddress/td/trtrtdinput typesubmit valueSubmit/td/tr/form/table/body/html show.jsp只展示 Body 标签内容 UserName: ${userName}brEmail: ${email}brAddress: ${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 来组织模块 name 属性为必须的用于其他包应用当前包extends 表示当前包所继承的包即可以继承其中所有的配置通常为 struts-defaultnameSpace默认值为 /当设置此属性的时候应在 URL中的 servletPath 前加上所设置的值action 属性 --- 一个 struts2 请求就是一个 action result action 的子标签标签体表示响应结果name 对应 struts2 请求的名字不包含扩展名扩展民默认为 .actionclass 为该 struts2 请求将要去的类的全类名method 为所要去执行的该类的方法该方法返回值必须为 String且需要和 result 节点的 name 属性一致result 的 name 属性值默认为 SUCCESSclass 默认属性为 ActionSupportmethod 默认值为 execute一个 action 可以有多个 result 子节点多个 result 子节点使用 name 属性区分result 节点的 type 属性默认为 dispatcher转发表示结果的响应类型Action VS action 在此案例中 Customer.java 就是 struts2 中所说的 Action 类index.jsp 发送的请求为一个 action 请求action 代表一个 struts2 请求Action 类代表能够处理该 struts2 请求的类Action 类的成员变量必须遵循与 JavaBean 属性名相同的命名规则属性的类型可以是任意类型需与表单的 name 属性相同至少有一个供 struts2 执行这个 action 请求时所要调用的方法同一个 Action 也可以包含多个 action 方法Action 类必须有一个无参的构造器因为会用到反射赋值转载于:https://www.cnblogs.com/bgzyy/p/8639893.html