[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的体验教程,由浅入深。