`
scnujie
  • 浏览: 127754 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts与Velocity的简单集成

阅读更多
首先当然是简单的配置web.xml与struts-config.xml文件,加入必要的servlet等东西:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  
  <servlet>
    <servlet-name>velocity</servlet-name>
    <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
  </servlet>  
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>*.vm</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  
  <welcome-file-list>
    <welcome-file>vms/login.vm</welcome-file>
  </welcome-file-list>
</web-app>

Struts-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="loginForm" type="com.jie.struts.form.LoginForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards >
    <forward name="success" path="/vms/success.vm" />
    <forward name="fail" path="/vms/fail.vm" />
    <forward name="first" path="/vms/login.vm" />

  </global-forwards>

  <action-mappings >
    <action
      attribute="loginForm"
      input="/login.vm"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.jie.struts.action.LoginAction" />

  </action-mappings>

  <message-resources parameter="com.jie.struts.ApplicationResources" />
</struts-config>

然后是一个用于测试的登录页面:login.vm

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>登录页面</title>
<style type="text/css">
<!--
.STYLE1 {color: #00FF33}
-->
<!--
.STYLE2 {color: red}
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="login.do">
  <label>用户名
  <input type="text" name="userName" /> 
  </label>
  <p>
    <label>密 &nbsp;码
    <input type="password" name="password" />
    </label>
  </p>
  <p>
    <label>
    <input type="submit" name="Submit" value="提交" />
    </label>
  </p>
</form>
#if($isSuccess)<p class="STYLE1">验证通过...</p>#else  #end
#if($isNull)<p class="STYLE2">字段不能为空...</p>#else  #end
</body>
</html>


还有一个后台处理的LoginAction.java:

public ActionForward execute(ActionMapping mapping, ActionForm form,
                        HttpServletRequest request, HttpServletResponse response) {
                LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
                String userName = loginForm.getUserName();
                String password = loginForm.getPassword();
                
                if(userName.equals("jie") && password.equals("123"))
                {                                        
                        isSuccess = true;
                        request.setAttribute("isSuccess", isSuccess);//集成的关键点在这里...,把对象加入到vm模板                            return mapping.findForward("first");         里面,然后可以在模板里面用 $isSuccess 来使用.
                        
                }else if(userName=="" || password=="")
                {
                        boolean isNull = true;
                        request.setAttribute("isNull", isNull);
                        return mapping.findForward("first");
                }
                return mapping.findForward("fail");
                
        }
1
0
分享到:
评论

相关推荐

    struts2与velocity集成 实例

    在Struts2与Velocity集成的过程中,首先需要在Struts2的配置文件中指定Velocity作为视图解析器。这通常是在struts.xml文件中添加一个`&lt;result&gt;`标签,并设置类型为`velocity`,如下所示: ```xml &lt;result type="...

    Struts 与 Velocity 的集成(http://www-128.ibm.com/deve)

    3. **Struts与Velocity集成**: - 集成的关键在于将Struts的视图部分替换为Velocity模板。在Struts的ActionForward中指定Velocity模板的路径,而不是JSP页面。 - 在`struts-config.xml`中配置Action,设置其...

    struts2 velocity

    通过研究这个压缩包,开发者可以深入理解如何在Struts2中集成Velocity,以及如何利用Velocity的特性来创建动态、高效的Web应用。同时,这也是一种了解MVC架构如何在实践中运作的好方式。为了更好地利用这些资源,...

    使用了Struts结构和Velocity模板技术的BLOG

    Struts和Velocity是两...通过这个项目,开发者可以深入理解Struts和Velocity的集成,学习如何利用MVC模式来组织代码,以及如何利用Velocity模板优雅地呈现数据。这对于提升Java Web开发技能和构建实际项目非常有帮助。

    struts2Velocity.zip_velocity

    以下是关于Struts2与Velocity集成的一些关键知识点: 1. **配置集成**:在Struts2的配置文件(struts.xml)中,需要声明Velocity结果类型,以便Struts2知道如何处理 Velocity模板。通过添加`&lt;result-type&gt;`标签并指定...

    Struts2与Velocity模板

    在 Struts2 框架中,Velocity 模板引擎可以与 Struts2 集成,实现了显示层与程序代码的分离。 Velocity 模板引擎的优点在于,它可以使得开发人员快速开发显示层,同时也可以与 Struts2 框架集成,以实现显示层与...

    mongo集成spring struts2 json velocity

    Struts2与Spring的集成,可以让Spring管理Struts2的Action实例,实现依赖注入,增强Action的可测试性和可维护性。 JSON在前后端通信中扮演了关键角色。通常,Struts2 Action执行完毕后,会返回一个包含业务数据的...

    Struts2 与 Velocity 实例

    Struts2 主要负责MVC(模型-视图-控制器)架构的实现,提供了一种组织应用程序逻辑的方式,而Velocity 则是一个模板引擎,专注于视图层的渲染,使得开发者能够用简单的语法将动态数据嵌入到静态页面中。 **Struts2 ...

    Struts2+velocity jar

    在Struts2与Velocity结合使用时,通常会将Velocity模板作为Action执行后的Result,这样Action处理完业务逻辑后,会将控制权交给Velocity模板来生成最终的HTML响应。开发者可以利用Struts2的Action和Interceptor来...

    Struts2&&Velocity

    在"Velocity003"这个压缩包中,可能包含了一些关于如何在Struts2项目中集成和使用Velocity模板的示例代码或教程。例如,可能有Action类的实现,展示了如何设置和返回结果对象;还有Velocity模板文件,演示了如何在...

    struts2+spring+velocity扩展实例V1版本

    这个实例是一个学习和实践Struts2、Spring和Velocity集成的好材料,对于想要深入了解这三大框架的开发者来说,通过分析源代码,可以学习到如何有效地组合使用这些工具,提升自己的Java Web开发技能。后续版本的整合...

    Velocity+Struts 配置

    他也可用于一个独立的程序以产生源代码和报告,或者作为其它系统的一个集成组件。这个项目完成后,Velocity将为Turbine web 应用程序框架提供模板服务。Velocity+Turbine 方案提供的模板服务将允许web 应用按真正的...

    struts2与shiro集成(实例)

    此外,Struts2支持多种结果类型,如JSP、FreeMarker、Velocity等,方便视图的展示。 接下来是Shiro。Shiro提供了一种简单的方式来处理用户的登录、权限控制和会话管理。它的核心组件包括Subject(代表当前用户)、...

    Struts2集成FreeMarker和Velocity,写成了工具类,快速实现页面静态化

    Struts2集成FreeMarker和Velocity,写成了工具类,快速实现页面静态化,以后直接调用即可,无需修改任何源代码,改压缩文件包括 1、工具类; 2、源码(含jar包); 3、mysql数据库可执行文件; 4、struts2集成...

    struts+spring+velocity

    Velocity模板语言(VTL)简单且直观,允许开发人员在模板中引用Java对象,而无需知道底层实现细节。Velocity会解析模板并生成静态HTML,这提高了网页的加载速度,因为不需要在每个请求时重新计算模板。 在"struts+...

    Struts2+Spring+Velocity项目

    Spring还包含对数据库访问的支持,如JDBC抽象层,以及与ORM框架如Hibernate和MyBatis的集成。 **Velocity** 是一个开源的Java模板引擎,它允许开发者将HTML和业务逻辑分离。Velocity模板语言(VTL)简洁、直观,...

    velocity+struts2 demo

    Velocity是一个基于Java的模板引擎,它将控制逻辑与表现逻辑分离,使得开发者可以专注于内容的呈现,而Struts2则是一个强大的MVC(模型-视图-控制器)框架,提供了丰富的功能来处理HTTP请求和业务逻辑。这两个框架的...

    struts2框架最小集成

    在实际开发中,Struts2还可以与其他技术结合,如Spring进行依赖注入,Hibernate或MyBatis进行持久化操作,提高开发效率和可维护性。同时,Struts2的拦截器机制允许开发者自定义扩展功能,实现更复杂的业务需求。虽然...

    struts2.2+velocity+tiles+spring3+mybatis3.05整合

    总之,"struts2.2+velocity+tiles+spring3+mybatis3.05整合"实例展示了Java Web开发中的典型技术栈集成,为开发者提供了高效、稳定的开发环境,有助于提升项目开发的速度和质量。通过学习和实践这个实例,开发者可以...

    struts2+spring2+hibernate3+velocity+sitemesh集成框架代码

    关键在于,由于Velocity通常不直接与Struts2或Spring集成,实现它们之间的通信可能会有些挑战,可能需要自定义拦截器或利用Servlet过滤器来传递数据。通过下载和研究这个代码,你可以深入理解这些框架的交互方式,...

Global site tag (gtag.js) - Google Analytics