[struts2学习笔记] 第六节 struts2依赖的jar包还有Could not find action or result 错误解决

最后更新于:2022-04-01 07:38:26

本文地址:[http://blog.csdn.net/sushengmiyan/article/details/43272061](http://blog.csdn.net/sushengmiyan/article/details/43272061) 本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan) ------------------------------------------------------------------------------------------------------------------------------------ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a2c6a71.jpg) struts2-core-2.3.20依赖的其他jar包。 如果启动的时候有报错 Could not find action or result  一般情况说明是struts2的配置文件错误。第一种情况,是不是将struts.xml写成了struts2.xml另一种情况,是不是将struts2.xml放置在了src目录下(IDE开发环境)或者在classes文件夹下。
';

[struts2学习笔记] 第五节 编写struts2的action代码

最后更新于:2022-04-01 07:38:24

本文地址:[http://blog.csdn.net/sushengmiyan/article/details/40479299](http://blog.csdn.net/sushengmiyan/article/details/40479299) 官方文档: [http://struts.apache.org/release/2.3.x/docs/coding-struts-2-actions.html](http://struts.apache.org/release/2.3.x/docs/coding-struts-2-actions.html)[](http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext-method-each) 本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan) ------------------------------------------------------------------------------------------------------------------------------------ 其实学习struts2基础部分,个人感觉,到前四篇已经可以有个直观的了解和掌握了,就可以在应用中正常使用struts了,其它struts2的特性,久可以慢慢琢磨API了。 现在再将struts2的一个教程给解释一下,也算是备用吧,后期可以在指导他人学习struts2的时候供参考。 编写struts2的代码只需要三步: ### 1.映射一个action到class action和class的映射是在struts.xml里面配置的,之前的一个配置如下: ~~~ <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute"> <result name="success">/HelloWorld.jsp</result> </action> ~~~ 以上配置就指定了一个hello的action对应于org.apache.struts.helloworld.action.HelloWorldAction class ### 2.映射一个结果到view ~~~ <result name="success">/HelloWorld.jsp</result> ~~~ 这个就是将success的结果映射到HelloWorld.jsp这个view中。 ### 3.编写action的处理逻辑 ~~~ public String execute() throws Exception { messageStore = new MessageStore() ; helloCount++; return SUCCESS; } ~~~ 这个是class对应的一个方法,是处理事务逻辑的地方。根据你的处理,返回处理结果,如success 这个地方有必要说一下整个的处理过程: 首先,登陆界面,接受用户的input标签的数据输入(用户名、密码) 接着,根据struts.xml配置文件,找到对应的用户名密码的set方法,将输入数值设置到对应的类对象中 然后,调用了httprequest方法,获取刚刚存入对象的输入数据(用户名、密码) 接着,执行execute方法,返回处理结果(如success) 最好,根据处理结果,显示view给用户(result.jsp) 这就是struts2的整个处理流程,感觉,熟悉了这个流程,在自己的程序中增加struts2已经很简单了。
';

[struts2学习笔记] 第四节 学着使用struts 2的tag标签

最后更新于:2022-04-01 07:38:22

本文地址:[http://blog.csdn.net/sushengmiyan/article/details/40349201](http://blog.csdn.net/sushengmiyan/article/details/40349201) 官方文档: [http://struts.apache.org/release/2.3.x/docs/hello-world-using-struts-2.html](http://struts.apache.org/release/2.3.x/docs/using-struts-2-tags.html)[](http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext-method-each) 本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan) ------------------------------------------------------------------------------------------------------------------------------------ Web程序和传统的网页站点不同,web程序可以创建一个动态的回应. 为了更容易的从页面获取动态数据,Struts 2框架提供了一系列的标签.其中一些标签模仿标准的 HTML标签但是却提供了更多的数据. 其它标签创建不标准的但是很有用的控制. ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a180335.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a1a9d1c.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a1d4943.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a211707.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a252c55.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a290435.jpg)
';

[struts2学习笔记] 第三节 创建struts 2 HelloWorld所需的六个步骤

最后更新于:2022-04-01 07:38:20

本文地址:[http://blog.csdn.net/sushengmiyan/article/details/40349201](http://blog.csdn.net/sushengmiyan/article/details/40349201) 官方文档:[ http://struts.apache.org/release/2.3.x/docs/hello-world-using-struts-2.html](http://struts.apache.org/release/2.3.x/docs/hello-world-using-struts-2.html)[](http://struts.apache.org/release/2.3.x/docs/hello-world-using-struts-2.html)[](http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext-method-each) 本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan) ------------------------------------------------------------------------------------------------------------------------------------ 当你在Struts 2 web应用中点击一个超链接或者提交一个form表单数据时,输入的数据并没有传到服务器的另一个页面,而是到了你提供的一个Java类. 这些类就叫做Actions. 当Action被fire, 结果会选择一个资源呈现响应. 通常情况下,资源是一个网页页面, 也可以是PDF文件, 或者是Excel页签, 或者是一个Java applet窗口. 假设你想创建一个简单的"Hello World" 例子展示欢迎信息. 在简单设定struts工作环境之后(参照 [如何创建struts 2 web应用](#)), 创建"Hello World"例子,你需要做如下四件事情: 1. 创建一个存储欢迎信息的java类(模型model) 1. 创建一个呈现信息的页面(视图 view) 1. 创建一个Action类来控制用户、模型和视图之间的关系(控制器controller) 1. 创建一个mapping (struts.xml) 来组合Action类和视图 这篇文章假定你已经完成了 怎样创建一个Struts 2 Web应用 体验并且拥有一个基础的struts工作空间. 这篇helloworld体验的源码,可以从Struts 2 GitHub 库https://github.com/apache/struts-examples下载. 例子工程使用maven管理依赖和构造.war文件. ### 第一步- 创建模型类 MessageStore.java 在我们第一个例子中,我们新建一个包com.susheng.struts2Maven.bean在里面新建一个类MessageStore,内容如下: ~~~ package com.susheng.struts2Maven.bean; public class MessageStore { private String message; public MessageStore() { setMessage("Hello Struts User"); } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a035494.jpg) ### 第二步 - 创建Action类 HelloWorldAction.java 新建包com.susheng.struts2Maven.action在此包下新建类HelloWorldAction,内容如下: ~~~ package com.susheng.struts2Maven.action; import com.opensymphony.xwork2.ActionSupport; import com.susheng.struts2Maven.bean.MessageStore; public class HelloWorldAction extends ActionSupport{ private static final long serialVersionUID = 1L; private MessageStore messageStore; public String execute() throws Exception { messageStore = new MessageStore() ; return SUCCESS; } public MessageStore getMessageStore() { return messageStore; } public void setMessageStore(MessageStore messageStore) { this.messageStore = messageStore; } } ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a05d12e.jpg) ### 第三步 - 创建View HelloWorld.jsp 内容如下: ~~~ <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!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=ISO-8859-1"> <title>Hello World!</title> </head> <body> <h2><s:property value="messageStore.message" /></h2> </body> </html> ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a08e5e1.jpg) ### 第四步 - 增加Struts配置到struts.xml 完整内容如下: ~~~ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="basicstruts2" extends="struts-default"> <action name="index"> <result>/index.jsp</result> </action> <action name="hello" class="com.susheng.struts2Maven.action.HelloWorldAction" method="execute"> <result name="success">/HelloWorld.jsp</result> </action> </package> </struts> ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a0b68c6.jpg) ### 第五步 - 创建URL Action index.jsp修改为如下: ~~~ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!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>Basic Struts 2 Application - Welcome</title> </head> <body> <h1>Welcome To Struts 2!</h1> <p><a href="<s:url action='hello'/>">Hello World</a></p> </body> </html> ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a0dc683.jpg) ### 第六步 - 构造WAR文件并运行程序 我构造的war包是basic_struts.war所以我访问链接:http://localhost:8080/basic_struts/index.action,进入之后点击helloworld链接,正常跳转。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a111861.jpg) 第二篇实际例子就学习完毕。 struts2的工作原理: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a142933.jpg)
';

[struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤

最后更新于:2022-04-01 07:38:17

本文地址:[http://blog.csdn.net/sushengmiyan/article/details/40303897](http://blog.csdn.net/sushengmiyan/article/details/40303897) 官方文档:[ http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html](http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html)[](http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext-method-each) 本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan) ------------------------------------------------------------------------------------------------------------------------------------ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159edb0ee.jpg) 学习maven基础可以移步maven学习笔记:[http://blog.csdn.net/sushengmiyan/article/details/40142771](http://blog.csdn.net/sushengmiyan/article/details/40142771) ### 第一步 创建一个Java Web 程序 创建一个工作目录,使用maven执行如下命令: ~~~ mvn archetype:generate -DgroupId=com.susheng.struts2Maven -DartifactId=hellostruts -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ~~~ 此命令创建了一个简单的maven项目,可以看到生成了maven格式的工程目录,项目跟下有pom.xml文件。 修改此文件,增加如下节点内容: ~~~ <build> <finalName>basic_struts</finalName> </build> ~~~ 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159ef28b5.jpg) ### 第二步:增加index,jsp 下一步,我们增加一个简单的index.jsp页面到这个程序中. 在src/main/webapp文件夹下创建一个index.jsp标题为"欢迎来到Struts 2最基础的程序",在body中增加一个h1的内容: "欢迎来到Struts 2!" 内容如下: ~~~ <%@ 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>欢迎来到Struts 2最基础的程序</title> </head> <body> <h1>欢迎来到Struts 2!</h1> </body> </html> ~~~ 执行mvn clean package 构建一个war文件,将这个文件复制到你的web容器中,比如tomcat。我这里构造了一个basic_struts.war文件,我将其放置在tomcat的webapp目录下,我启动tomcat 在浏览器中输入地址:http://localhost:8080/basic_struts/index.jsp 展示页面如下: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159f15a24.jpg) 到目前为止,我们仅仅是使用maven创建了一个简单的程序,并没有将struts纳入进来。 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159f2d35f.jpg) ### 第三步:增加struts 2 到我们的工程中 在pom.xml中增加如下内容: ~~~ <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.16.3</version> </dependency> ~~~ 加入这些之后,可以看到maven引入的jar包中多了struts2以及xwork还有javaassis的jar包,说明代码起到作用。 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159f564e2.jpg) ### 第四步 增加log日志 在src\main文件夹下新建resources文件夹,里面新建log4j.xml配置文件,内容如下: ~~~ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p %c.%M:%L - %m%n"/> </layout> </appender> <!-- specify the logging level for loggers from other libraries --> <logger name="com.opensymphony"> <level value="DEBUG" /> </logger> <logger name="org.apache.struts2"> <level value="DEBUG" /> </logger> <!-- for all other loggers log only info and above log messages --> <root> <priority value="INFO"/> <appender-ref ref="STDOUT" /> </root> </log4j:configuration> ~~~ 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159f73975.jpg) ### 第五步:给我们的应用增加struts 2的过滤器 修改web.xml文件,增加如下内容: ~~~ <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> ~~~ 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159f9fe65.jpg) ### 第六步,增加struts2的配置文件 在刚才的resources文件夹下,新增struts.xml文件,里面内容如下: ~~~ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="basicstruts2" extends="struts-default"> <action name="index"> <result>/index.jsp</result> </action> </package> </struts> ~~~ 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159fc3b8c.jpg) ### 第七步:构造部署应用 使用maven的clean package命令,构造war包,我这里生成的是basic_struts.war,将这个文件拷贝到tomcat的webapp目录下,启动tomcat服务器,观看命令行显示,然后启动浏览器,输入http://localhost:8080/basic_struts/index.action 查看网页内容如下: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159ff181d.jpg) 这段内容,对应于官方教程中: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b215a013a21.jpg) 到处为止,第一个例子就演示完毕了。
';

[struts2学习笔记] 第一节 关于struts2的简单认知

最后更新于:2022-04-01 07:38:15

本文地址:[http://blog.csdn.net/sushengmiyan/article/details/40298287](http://blog.csdn.net/sushengmiyan/article/details/40298287) 官方文档:[ http://struts.apache.org/release/2.3.x/docs/home.html](http://struts.apache.org/release/2.3.x/docs/home.html)[](http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext-method-each) 本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan) ------------------------------------------------------------------------------------------------------------------------------------ 学习java不得不了解的就是SSH框架,这是很多中小型企业都在招聘的时候面试的问题,之前在学校的时候也接触过,但是总觉得不系统,现在整体上来过一遍,从struts开始,将学习的内容记录一下。 学习一个框架,首先必须要去其官网,struts的官网:[http://struts.apache.org/](http://struts.apache.org/) struts提供了[tutorial](http://struts.apache.org/release/2.3.x/docs/tutorials.html):[http://struts.apache.org/release/2.3.x/docs/tutorials.html](http://struts.apache.org/release/2.3.x/docs/tutorials.html) 我就从这里开始学起了。 先看下doc的home页说了什么吧: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159e06667.jpg) 这一页内容就是简单介绍了一下struts2,我们需要看一遍,了解一下就可以的啦。 现在看看怎么使用maven创建应用程序吧。就是struts-2-maven-archetypes连接的内容:[http://struts.apache.org/release/2.3.x/docs/struts-2-maven-archetypes.html](http://struts.apache.org/release/2.3.x/docs/struts-2-maven-archetypes.html) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159e34128.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159e54f6d.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159e7aa0a.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159e9b59e.jpg) 怎样创建Struts 2 Web应用 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-02-03_56b2159ebae10.jpg)
';

前言

最后更新于:2022-04-01 07:38:13

> 原文出处:[struts2轻装上阵](http://blog.csdn.net/column/details/sushengstruts2.html) 作者:[苏米沿](http://blog.csdn.net/sushengmiyan) **本系列文章经作者授权在看云整理发布,未经作者允许,请勿转载!** # struts2轻装上阵 > 从最基础学习struts2基础,直接了当的讲述struts2的体验教程,由浅入深。
';