注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

Java开发之七SpringMVC+Struct2  

2016-10-21 11:41:41|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Java开发之七SpringMVC+Struct2

 

继续上面,今天开始使用Struc2,这个东西原来也用过,但是在新的环境下使用还是没有用过,IDEA确实是个好东西,现在越用越好使,如果再让回到Eclipse可能真得比较难受,还得适应一下。

参照这个网页做的:

http://www.it610.com/article/2112900.htm

简述一下创建过程:

首先要创建一个Maven工程,但是不要象以前一样的选择模板,而是啥都不选择,直接下一步完成。

然后选择工程根目录,右击,“Add Framework Support,选择Struct2.就可以了。

这里面有几个注意点:

1、  Add Framework Support后,选择Struct2时注意选择最后一个:Set up library later,网上也有直接选择默认的下载的,下载就不好控制版本了。还是建议用后面的POM.XML里的配置自动下载。

2、  要把自动创建的struct.xml文件移动到Resource文件夹中去,这样不被Maven忽略。

3、  JSP网页中访问Action的名字是Action类中的属性“@Action(value = "say")”这个值,不是:

</action>
<
action name="SayHelloAction" class="com.fjf.action.SayHelloAction" method="execute">
 <
result name="success">/index.jsp</result>
</
action>

这个Name的名字。如果在JSP中使用其它的名字会报下面的错误:

?There is no Action mapped for namespace [/<s:url action='say'] and action name [] associated with context path [/eprint]

4、  JSP网页中使用Action要注意引用包:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@
page import="java.io.*,java.util.*" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@
page import="com.fjf.action.SayHelloAction" %>
<
html>
  <
head>
    <
title>01</title>
  </
head>
  <
body>
  <
p><a href="<s:url action='say'/>">kkkkk</a></p>

  </
body>
</
html>

注意变红色的部分。

5、要在Project Structe中的Artifacts中把右面的包都双击到左面来。具体的可看参考的网页。

通过上面的方法,就可以把一个Struct2的基本工程搞定。

看具体的配置文件:pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <
modelVersion>4.0.0</modelVersion>

    <
groupId>com.fjf</groupId>
    <
artifactId>maven-structs2</artifactId>
    <
version>1.0-SNAPSHOT</version>
<
dependencies>
    <
dependency>
        <
groupId>org.apache.struts</groupId>
        <
artifactId>struts2-core</artifactId>
        <
version>2.5</version>
    </
dependency>
    <
dependency>
        <
groupId>org.apache.struts</groupId>
        <
artifactId>struts2-convention-plugin</artifactId>
        <
version>2.5</version>
    </
dependency>
    <
dependency>
        <
groupId>javax.servlet</groupId>
        <
artifactId>servlet-api</artifactId>
        <
version>2.5</version>
    </
dependency>
</
dependencies>
</
project>

Struct.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <
constant name="struts.devMode" value="true" />
    <
package name="MavenStruc2" extends="struts-default" >
    <
action name="index">
    <
result>/index.jsp</result>
    </
action>
    <
action name="SayHelloAction" class="com.fjf.action.SayHelloAction" method="execute">
     <
result name="success">/index.jsp</result>
    </
action>
   </
package>
</
struts>

Web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        
version="3.1">
    <
filter>
        <
filter-name>struts2</filter-name>
        <
filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
        <
init-param>
            <
param-name>actionPackages</param-name>
            <
param-value>com.fjf.action</param-value> <!--因为是全注解,这里要配置初始化参数,即扫描com.demo.action下的所有类-->
       
</init-param>
    </
filter>
    <
filter-mapping>
        <
filter-name>struts2</filter-name>
        <
url-pattern>/*</url-pattern>
    </
filter-mapping>
</
web-app>

下面是开发的代码:

ActionJava代码:

package com.fjf.action;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.components.ActionComponent;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.PrintWriter;

@ParentPackage("struts-default")
@Namespace("/")
public class SayHelloAction extends ActionSupport{
   
//HttpServletRequest request = ServletActionContext.getRequest();
   
@Action(value = "say")
   
public void sayHello() throws IOException {
      
// request.setAttribute("say", "hello 0000000world!");
       
PrintWriter out = ServletActionContext.getResponse().getWriter();
        out.print(
"my+++-----+++test");
    }
}

JSP的代码:见4.

这样一个完整的Struct2的代码就完成了。只可惜的是没有加上数据库,下一篇搞定。感谢同事的支持,特别是在JSP页面中访问要加引用包,这个费了小半天的时间。

  评论这张
 
阅读(60)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017