spring整合strus2的Hellowworld

Posted 久曲健

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring整合strus2的Hellowworld相关的知识,希望对你有一定的参考价值。

比较笨,看了三遍才能理解敲对并正确运行:

step:

1、建立web工程( Dynamic Web project)一定要勾上创建web.xml

2、导入jar包

这个就比较坑了,我查了有半个小时才查出来,我为啥一运行就报错404找不到资源(后来发现是因为WEB-INF/lib下没有引入依赖jar)

jar分两个位置引入:

1)、正常位置引入lib:

antlr-2.7.7.jar
aopalliance-1.0.jar
aspectjweaver-1.7.1.jar
commons-fileupload-1.2.2.jar
commons-logging-1.2.jar
dom4j-1.6.1.jar
druid-0.2.8.jar
hamcrest-core-1.3.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.1.7.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
jackson-annotations-2.1.0.jar
jackson-core-2.1.0.jar
jackson-core-asl-1.9.11.jar
jackson-databind-2.1.0.jar
jackson-mapper-asl-1.9.11.jar
javassist-3.15.0-GA.jar
javax.servlet-api-3.0.1.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
junit-4.12.jar
log4j-1.2.17.jar
mysql-connector-java-5.1.21.jar
spring-aop-4.1.6.RELEASE.jar
spring-beans-4.1.6.RELEASE.jar
spring-context-4.1.6.RELEASE.jar
spring-core-4.1.6.RELEASE.jar
spring-expression-4.1.6.RELEASE.jar
spring-jdbc-4.1.6.RELEASE.jar
spring-orm-4.1.6.RELEASE.jar
spring-tx-4.1.6.RELEASE.jar
spring-web-4.1.6.RELEASE.jar
spring-webmvc-4.1.6.RELEASE.jar

2)、在WEB-INF/lib下加入jar

com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
commons-logging-1.1.3.jar
spring-aop-4.0.0.RELEASE.jar
spring-aspects-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
spring-jdbc-4.0.0.RELEASE.jar
spring-orm-4.0.0.RELEASE.jar
spring-tx-4.0.0.RELEASE.jar
spring-web-4.0.0.RELEASE.jar
spring-webmvc-4.0.0.RELEASE.jar

3、创建实体Hellow

package com.strus2.entity;

public class Hellow {

    private String str;
    public void setStr(String str) {
        this.str = str;
    }
    public void hellow(){
        System.out.println("hellow,"+str);
    }
}

创建bean文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="hellow" class="com.strus2.entity.Hellow">
        <property name="str" value="world!!"></property>
    </bean>

</beans>

 

4、创建监听类

package com.strus2.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Application Lifecycle Listener implementation class Struslistener
 *
 */
@WebListener
public class Struslistener implements ServletContextListener {

    /**
     * Default constructor. 
     */
    public Struslistener() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent arg0)  { 
         // TODO Auto-generated method stub
//        获取Spring配置文件名称
        ServletContext servletContext = arg0.getServletContext();
        String config = servletContext.getInitParameter("configLocation");
//        闯将ioc容器,将ioc容器放到ServletContext属性中
        ApplicationContext ctx=new ClassPathXmlApplicationContext(config);
        servletContext.setAttribute("ApplicationContext", ctx);
    }

    /**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent arg0)  { 
         // TODO Auto-generated method stub
    }
    
}

5、创建测试Servlet

只勾选doget复选框

package com.strus2.test;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.context.ApplicationContext;

import com.strus2.entity.Hellow;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
//        从Servletcontent域对象中,获取ioc容器
        ServletContext servletContext = getServletContext();
        ApplicationContext ctx = (ApplicationContext) servletContext.getAttribute("ApplicationContext");
//        获取所需要的bean
        Hellow hellow = ctx.getBean(Hellow.class);
        hellow.hellow();
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

}

创建inde.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
    <a href="TestServlet">TestServlet</a>
</body>
</html>

6、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>strus2-demo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
    <param-name>configLocation</param-name>
    <param-value>classpath:bean.xml</param-value>
  </context-param>
<!--   <listener>
    <listener-class>com.strus2.listener.Struslistener</listener-class>
  </listener> -->
  
</web-app>

 

注意:运行测试,需要选中整个工程,run-onserver-选择Tomcat7.0 server,即可

 

 点击TestServlet

效果如下:

 

以上是关于spring整合strus2的Hellowworld的主要内容,如果未能解决你的问题,请参考以下文章

strus2 struts.xml详解

input设置disabled,经过strus2提交到后台,后台取不到值

使用Spring框架实现文件上传

使用Spring框架实现文件上传

使用Spring框架实现文件上传

使用Spring框架实现文件上传