ITKeyword,专注技术干货聚合推荐

注册 | 登录

jsp和velocity的区别

yjclsx 分享于 2016-03-24

推荐:Velocity浅析及与Jsp、Freemarker对比

Velocity浅析 Velocity 是一个基于java 的模板引擎(template engine). 它可以让视图的设计者在web 页面中引用java 代码中定义的数据对象和命令。从而使Web desig

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

jsp和velocity都是模板引擎,jsp可以在页面代码里增加java代码,虽然这样可读性很差,但有时候是很方便。 velocity不支持java代码,但有特定的标签表达式。 velocity代码展示: ...

<legend>信用贷</legend> #if($applyVO.site == "ALIPAY")<p class="apply-tip">请确认以下法定代表人信息</p>#end

<div class="ui-form-item">

<label for="" class="ui-label">申请额度:</label>

<input autocomplete="off" class="ui-input" type="text" id="J_MoneyInput" name="$creditFormGroup.amount.key" value="$!amountInteger" max-length="3"data-rules="{regexp : /^\d{1,3}$/,max:[100,'申贷额度2-100万'],min:[2,'申贷额度2-100万']}" data-messages="{regexp:'请输入整数,申贷额度2-100万'}" >

#if("$!creditFormGroup.amount.value"!="")

#set($amountInteger = $numberUtil.intValueFromDoubleString($!creditFormGroup.amount.value))

#end

<p class="ui-form-unit"><span>万元</span></p>

<p class="ui-form-explain" id="J_Money"></p>

</div>

<div class="ui-form-item">

<label for="" class="ui-label">贷款用途:</label>

<select class="ui-input bui-form-field" name="$!creditFormGroup.loanPurpose.key" id ="loanPurpose"> #foreach($loanPurpose in $loanPurposes) <option value="$!loanPurpose.code">$!loanPurpose.desc</option> #end </select>

</div> ... velocity有自己的标签:#if()...#else(#else if)...#end、#set()、#foreach()...#end,页面中数据的显示可以使用"$"或者"$!",如"$!userName"。 jsp代码展示: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%String path = request.getContextPath();String b

推荐:Servlet与Jsp的区别

Servlet是一种在服务器端运行的Java程序,从某种意义上说,它就是服务器端的Applet。而Jsp是继Servlet后Sun公司推出的新技术,它是以Servlet为基础开发的。Servl

asePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>

<head>

...

</head>

<body>

<form action="work.do?method=search" method="post">

<table border="1" align="center" width="50%"> 班级:

<select name="student.s_class">

<option value="0">全部</option>

<c:forEach var="T_class" items="${requestScope.tClassList}">

<option value="${T_class.c_no}"> ${T_class.c_name}</option>

</c:forEach>

</select>

<input type="submit" value="提交">

</table>

</form> ...

<c:if test="${requestScope.searchResult==0}">

<h5 align=center>无此数据</h5>

</c:if> ...

</body></html> 如上可见,jsp中可以镶嵌java代码。 1.编译器指示(page指令) <%@ 编译器指示 %> ,就是导入包page和标签库taglib ,例如 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>,引人了JSTL标签库才能使用<c:forEach>、<c:if>这些标签, 说白了JSTL标签常用来实现网页的逻辑判断和迭代显示的。2.声明 <%! 声明 %>,通常里面定义一些java的变量和方法。 3.表达式 <%= 表达式 %> ,等同于EL表达式, EL的语法:${

EL exprission }${

bean.name } 或

${

bean['name'] },例如上面jsp代码就是使用了EL表达式没有使用<%= %> , 如:${T_class.c_name},说白了,EL是用来显示数据的,而且EL表达式是不需要引入什么东西的,不像JSTL标签库需要引人。4.程序代码段/小型指令 <% 程序代码片段 %> ,就是在写普通的java代码。 <%!%>里面定义的属性是成员属性,相当于类的属性,方法相当于是全局的方法,相当于是类里面的方法.但是它是不可以进行输出的,因为它只是进行方法的定义和属性的定义。 <%%>这个里面可以进行属性的定义,可以输出内容,但是它不可以进行方法的定义,因为这对标签里面的内容将来是在此jsp被编译为servlet的时候放在了_jspService()方法里面的,这个方法就是服务器向客户端输出内容的地方,它本身就是一个方法,所以如果你在它里面定义方法的话,那么就相当于是在类的方法里面嵌套定义了方法,这在java里面是不允许的。但是你可以在里面定义自己的私有变量,因为方法里面也可以定义变量,也可以调用方法,但是唯独不可以再定义方法了。 <%!%>是用来定义成员变量属性和方法的,<%%>主要是用来输出内容的,因此如果涉及到了成员变量的操作,那么我们就应该使用<!%%>,而如果是涉及到了输出内容的时候,就使用<%%>。 以上在介绍<%%>各种形式的用法时也粗略地讲了一下JSTL这种jsp标准标签库和EL表达式。 大家也看到了,velocity不需要引人什么就能在页面中加入逻辑判断、迭代显示、数据显示,因为它自带了一些标签,jsp需要引人JSTL,所以感觉velocity要比jsp方便一些,但jsp还可以嵌入java代码,会更加灵活,对js语句他们两个都是支持嵌入的。

推荐:SpringMvc多视图整合配置教程(jsp、velocity、freemarker)

原文地址:http://blog.csdn.net/yaerfeng/article/details/23593755 说明一下目录结构 原创整理不易,转载请注明出处:SpringMvc多视图整合配置教程(jsp、veloc

jsp和velocity都是模板引擎,jsp可以在页面代码里增加java代码,虽然这样可读性很差,但有时候是很方便。 velocity不支持java代码,但有特定的标签表达式。 velocity代码展示: ...   <legend>

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。