zoukankan      html  css  js  c++  java
  • struts2和velocity整合问题

    我的博客:www.while0.com

    我的博客:www.shishangguan.net

    以下是我第一次使用velocity的时候写的 2012-03-12

    话说struts真够懒的,都把velocity-1.6.4.jar放到他自己的lib里边了,就不给放全了,搞得新手太郁闷了。struts2想要用velocity模板需要如下几个包:

    velocity-1.7.jar
    velocity-tools-2.0.jar
    commons-collections-3.2.jar

    然后只需要在web.xml中配置result type=velocity就可以了。

    另外eclipse如果做web项目,必须把jar包引入到WEBINF目录下,如果是使用userlibraries的话,webapp容器无法识别.classpath文件中指定的classpath从而导致类未找见的异常。

    以下是2013-04-18参加工作后发现的问题:

    在实际工作中,发现不能在vm模板中使用tools.xml配置文件中定义的工具类。查了很久才发现需要在struts.xml中定义两个常量,来帮助struts寻找到tools.xml和velocity.properties的位置

    web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     5 
     6     <display-name>Struts Blank</display-name>
     7 
     8     <filter>
     9         <filter-name>struts2</filter-name>
    10         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    11     </filter>
    12 
    13     <filter-mapping>
    14         <filter-name>struts2</filter-name>
    15         <url-pattern>/*</url-pattern>
    16     </filter-mapping>
    17     <servlet>
    18         <servlet-name>velocity</servlet-name>
    19         <servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class> 
    20         <init-param>
    21             <param-name>org.apache.velocity.toolbox</param-name>
    22             <param-value>/WEB-INF/tools.xml</param-value>
    23         </init-param>
    24         <init-param>
    25             <param-name>org.apache.velocity.properties</param-name>
    26             <param-value>/WEB-INF/velocity.properties</param-value>
    27         </init-param>
    28     </servlet>
    29     <servlet-mapping>
    30         <servlet-name>velocity</servlet-name>
    31         <url-pattern>*.vm</url-pattern>
    32     </servlet-mapping>
    33     <welcome-file-list>
    34         <welcome-file>index.html</welcome-file>
    35     </welcome-file-list>
    36 
    37 </web-app>

    struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <constant name="struts.velocity.toolboxlocation" value="WEB-INF/tools.xml" /> 
        <constant name="struts.velocity.configfile" value="WEB-INF/velocity.properties" />  
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="true" />
    
    
        <package name="default" namespace="/" extends="struts-default">
    
            <default-action-ref name="index" />
    
            <global-results>
                <result name="error">/error.jsp</result>
            </global-results>
    
            <global-exception-mappings>
                <exception-mapping exception="java.lang.Exception" result="error"/>
            </global-exception-mappings>
    
        </package>
    
        <include file="example.xml"/>
    
        <!-- Add packages here -->
    
    </struts>
  • 相关阅读:
    Cookie和Session
    Servlet中关于中文乱码
    单例模式
    document对象-操作元素的文档结构
    JS实现简单的多选选项的全选反选按钮
    js实现表单验证
    servlet
    http(Hyper Text Transfer Protocol)
    Vue之webpack打包
    Flink用户画像系统之实时品牌爱好
  • 原文地址:https://www.cnblogs.com/yamadie/p/2955406.html
Copyright © 2011-2022 走看看