- 浏览: 69647 次
- 性别:
- 来自: 海南-临高
最新评论
跟大学同学从去年开始一起搞的softecase项目差不多完成了。在页面模版选择方面,我们选择了velocity来做公共界面设计。大家知道,当Velocity应用于web开发时,界面设计者可以和程序开发者同步开发一个遵循MVC架构的web站点,这就是说,页面设计者可以只关注页面的显示效果,程序开发者关注业务逻辑编码。
下面是表格编辑及预览的模版:
CLASSIC_EDITOR_TABLE.vm 代码
- <HTML>
- <HEAD>
- <TITLE>$logixBox.getCaption()</TITLE>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=GBK"></META>
- #foreach( $scriptFile in $logixBox.getBoxController().getScriptFilesOfLoadAtStart())
- <script src="$scriptFile.getFileName()"></script>
- #end
- #foreach( $linkFile in $logixBox.getBoxController().getLinkFiles())
- <link type="text/css" rel="StyleSheet" href="$linkFile" />
- #end
- <link type="text/css" rel="StyleSheet" href="softecase/style/classic/logixGrid.css" />
- </HEAD>
- <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" class="bodyBorder">
- <table id="bodyTable" border="0" cellspacing="0" cellpadding="0" height="100%" width="100%">
- <tr><td height="30">
- #set ($flag=$logixBox.getBoxParam().getRequestParam("STANDARD_IDENTITY"))
- #if (!$flag)
- #set ($flag="表格新建")
- #else
- #set ($flag="表格编辑")
- #end
- <div class="mainCaption">$logixBox.getCaption()--$flag</div>
- </td></tr>
- <tr><td height="22">
- <div id="tabController" onselectstart="event.returnValue = false;">
- <div id="tabCaption_1" style="display:inline" class="tabCaptionSelected">基本信息</div>
- </div>
- </td></tr>
- <tr><td width="100%" valign="top" >
- <div id="divContent" style="OVERFLOW: auto; height: 100%; width: 100%" onresize="this.style.width = document.body.clientWidth;" class="clientBG">
- <div id="tab_1" style="display:block" class="tabContent">
- <div id = "controller" align="left" class="multiBar">
- <button id="_addRow" onclick="_addRow()" class="buttonStyle" onmouseover='commonMouseOver()' onmouseout='commonMouseOut()'>增加一行</button>
- <button id="_removeRow" onclick="_removeRow()" class="buttonStyle" onmouseover='commonMouseOver()' onmouseout='commonMouseOut()'>删除所选行</button>
- <button id="_post" onclick="_doPost()" class="buttonStyle" onmouseover='commonMouseOver()' onmouseout='commonMouseOut()'>保存</button>
- <button id="back" onclick="javascript:showChildNavWindow(window.parent)" class="buttonStyle" onmouseover='commonMouseOver()' onmouseout='commonMouseOut()'>返回</button>
- </div>
- #set($root=$logixBox.generateWebViewData())
- <form name="form0" method="post" action="persist.exec" colsDef="$root.getType()">
- #set ($headerSet=$root.getChildren().get(0))
- #set ($rowSet=$root.getChildren().get(2))
- <div id="logixGrid" style="behavior:url(softecase/style/classic/logixGrid.htc);width:100%;height:100%;padding-left:2px;">
- <div type="FIXEDPART" class="FIXED_PART_STYLE">
- <div type="HEADERS" class="FIXED_HEADERS_STYLE">
- #set ($tmpIndex = 0 )
- #foreach ($header in $headerSet.getChildren())
- #if ($tmpIndex < $root.getFixedColumnCount())
- #set ($isRequired = $header.getData().get(4))
- #set ($visibleValue=$header.getData().get(3))
- #set ($headerColor = "#FFFFFF")
- #if ($isRequired=="1")
- #set ($headerColor = "#FF0000")
- #end
- #set ($visibleWidth = $header.getData().get(5))
- #set ($realValue = $header.getData().get(6))
- #set ($dispValue = $header.getData().get(7))
- <div align="center" id="$header.getData().get(0)" style = "color:$headerColor;width:$visibleWidth ex;"
- realValue = "$realValue" dispValue = "$dispValue" title="$header.getData().get(8)" class="FIXED_HEADER_STYLE"
- isRequired = "$isRequired" propType="$header.getData().get(2)" visibleValue="$visibleValue">
- $header.getData().get(1)
- </div>
- #end
- #set ($tmpIndex = $tmpIndex + 1 )
- #end
- </div>
- <div type="ROWS" class="FIXED_ROWS_STYLE">
- #foreach ($row in $rowSet.getChildren())
- <div type="ROW" >
- #set ($tmpIndex = 0 )
- #foreach ($cell in $row.getChildren())
- #if ($tmpIndex < $root.getFixedColumnCount())
- #set ($visibleValue=$cell.getData().get(1))
- #set ($realValue = $cell.getData().get(2))
- #set ($dispValue = $cell.getData().get(3))
- <div id="$cell.getData().get(0)" realValue = "$realValue" visibleValue="$visibleValue" class="FIXED_CELL_STYLE">$dispValue</div>
- #end
- #set ($tmpIndex = $tmpIndex + 1 )
- #end
- </div>
- #end
- </div>
- </div>
- <div type="DYNAMICPART" class="DYNAMIC_PART_STYLE">
- <div type="HEADERS" class="DYNAMIC_HEADERS_STYLE">
- #set ($tmpIndex = 0 )
- #foreach ($header in $headerSet.getChildren())
- #if ($tmpIndex >= $root.getFixedColumnCount())
- #set ($isRequired = $header.getData().get(4))
- #set ($visibleValue=$header.getData().get(3))
- #set ($headerColor = "#FFFFFF")
- #if ($isRequired=="1")
- #set ($headerColor = "#FF0000")
- #end
- #set ($visibleWidth = $header.getData().get(5))
- #set ($realValue = $header.getData().get(6))
- #set ($dispValue = $header.getData().get(7))
- <div align="center" id="$header.getData().get(0)" style = "color:$headerColor;width:$visibleWidth ex;"
- realValue = "$realValue" dispValue = "$dispValue" title="$header.getData().get(8)" class="DYNAMIC_HEADER_STYLE"
- isRequired = "$isRequired" propType="$header.getData().get(2)" visibleValue="$visibleValue">
- $header.getData().get(1)
- </div>
- #end
- #set ($tmpIndex = $tmpIndex + 1 )
- #end
- </div>
- <div type="ROWS" class="DYNAMIC_ROWS_STYLE">
- #foreach ($row in $rowSet.getChildren())
- <div type="ROW" >
- #set ($tmpIndex = 0 )
- #foreach ($cell in $row.getChildren())
- #if ($tmpIndex >= $root.getFixedColumnCount())
- #set ($visibleValue=$cell.getData().get(1))
- #set ($realValue = $cell.getData().get(2))
- #set ($dispValue = $cell.getData().get(3))
- <div id="$cell.getData().get(0)" realValue = "$realValue" visibleValue="$visibleValue" class="DYNAMIC_CELL_STYLE">$dispValue</div>
- #end
- #set ($tmpIndex = $tmpIndex + 1 )
- #end
- </div>
- #end
- </div>
- </div>
- </div>
- <input id="_data" type="hidden" name="LOGIXBOX_NAME" value="$logixBox.getBoxName()"/>
- #set ($identity=$logixBox.getBoxParam().getRequestParam("STANDARD_IDENTITY"))
- #if (!$identity)
- #set ($identity="")
- #end
- <input id="_data" type="hidden" name="STANDARD_IDENTITY" value="$identity"/>
- #set ($identity=$logixBox.getBoxParam().getRequestParam("PARENT_IDENTITY"))
- #if (!$identity)
- #set ($identity="")
- #end
- #set ($isRoot=$logixBox.getBoxParam().getRequestParam("IS_ROOT"))
- #if (!$isRoot)
- #set ($isRoot="")
- #end
- <input id="_data" type="hidden" name="PARENT_IDENTITY" value="$identity"/>
- <input id="_data" type="hidden" name="IS_ROOT" value="$isRoot"/>
- <input id="_data" type="hidden" name="LOGIX_STATUS" value="$logixBox.getBoxParam().getStatus().toString()"/>
- <input id="_data" type="hidden" name="LOGIX_SCENE" value="$logixBox.getBoxParam().getScene().toString()"/>
- <input id="_data" type="hidden" name="LOGIX_PARTTYPE" value="$logixBox.getBoxParam().getPartType().toString()"/>
- <input id="_data" type="hidden" name="LOGIX_LAYOUT" value="$logixBox.getBoxParam().getLayout().toString()"/>
- <input id="_data" type="hidden" name="LOGIX_SELECTMODE" value="$logixBox.getBoxParam().getSelectMode().toString()"/>
- <input id="_data" type="hidden" name="LOGIX_OPERATE" value="$logixBox.getBoxParam().getOperateType().toString()"/>
- #set ($multiIndex=$logixBox.getBoxParam().getMultiIndex())
- #set ($selectCount=$logixBox.getBoxParam().getSelectCount())
- <input id="_data" type="hidden" name="MULTI_INDEX" value="$multiIndex" />
- <input id="_data" type="hidden" name="SELECT_COUNT" value="$selectCount" />
- </form>
- </div>
- </div>
- <div id ="editContentSet" style="display:none;">
- #set ($editContentSet=$root.getChildren().get(1))
- #foreach ($editContent in $editContentSet.getData())
- <div>$editContent</div>
- #end
- </div>
- </td></tr>
- </table>
- </body>
- <script >
- if (controller!=null&&form0.STANDARD_IDENTITY.value!=""){
- var tmp = controller.all.item("_addRow");
- if (tmp!=null){
- tmp.style.display = "none";
- }
- tmp = controller.all.item("_removeRow");
- if (tmp!=null){
- tmp.style.display = "none";
- }
- }
- </script>
- <script src="softecase/script/logixGrid.js"></script>
- #foreach( $scriptFile in $logixBox.getBoxController().getScriptFilesOfLoadAtEnd())
- <script src="$scriptFile.getFileName()"></script>
- #end
- </HTML>
CLASSIC_NAVIGATOR_TABLE.vm
- <HTML<spa>
评论
23 楼
futurep_p
2008-06-05
老是看到有人评论velocity好,jsp好。我觉得这有什么意义呢,人家用的顺手了,都一样,该用什么自己体会了去用。
22 楼
pan19849529
2007-08-04
我觉得关键在里面不能写javascript,只能写一些事件触发,在里面做一些逻辑的就不行了
21 楼
姜太公
2007-08-03
用JSP+JSTL+OGNL,遇到困难就来一个<%%>
20 楼
melet
2007-07-28
<p><font>看了大家的留言。非常感谢大家提出个人在工作或是学习中的切身体会!下面是velocity的一个demo。我想通过这个demo能与大家来分享一下关于velocity的一些基本的常用的知识。</font></p>
<p><font>代码</font></p>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
<li class='alt'><span><span>Microsoft Windows XP [版本 5.1.2600] </span></span></li>
<li class=''><span>(C) 版权所有 1985-2001 Microsoft Corp. </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>C:\Documents and Settings\Administrator</span><span class='tag'>></span><span>cd d:\hibernate\vmproject </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>C:\Documents and Settings\Administrator</span><span class='tag'>></span><span>d: </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>D:\Hibernate\VMProject</span><span class='tag'>></span><span>ant </span></li>
<li class='alt'><span>Buildfile: build.xml </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>copy-resources: </span></li>
<li class=''><span> [copy] Copying 1 file to D:\Hibernate\VMProject\build </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>compile: </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>BUILD SUCCESSFUL </span></li>
<li class='alt'><span>Total time: 1 second </span></li>
<li class=''><span>D:\Hibernate\VMProject</span><span class='tag'>></span><span>ant run </span></li>
<li class='alt'><span>Buildfile: build.xml </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>clean: </span></li>
<li class=''><span> [delete] Deleting directory D:\Hibernate\VMProject\build </span></li>
<li class='alt'><span> [mkdir] Created dir: D:\Hibernate\VMProject\build </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>copy-resources: </span></li>
<li class=''><span> [copy] Copying 2 files to D:\Hibernate\VMProject\build </span></li>
<li class='alt'><span> [copy] Copied 1 empty directory to 1 empty directory under D:\Hibernate\VMP </span></li>
<li class=''><span>roject\build </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>compile: </span></li>
<li class='alt'><span> [javac] Compiling 2 source files to D:\Hibernate\VMProject\build </span></li>
<li class=''><span> [javac] 注意:某些输入文件使用了未经检查或不安全的操作。 </span></li>
<li class='alt'><span> [javac] 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>run: </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>html</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>head</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>title</span><span class='tag'>></span><span>test velocity</span><span class='tag'></</span><span class='tag-name'>title</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>head</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>body</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] hello Melet ! </span></li>
<li class=''><span> [java] yours CONSTANT: a final member </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] your firstName: yang </span></li>
<li class='alt'><span> [java] your lastName:zhao </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> [java] Status:false true true </span></li>
<li class=''><span> [java] true </span></li>
<li class='alt'><span> [java] health </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>table</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#CCCCCC"</span><span class='tag'>></span><span>1</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span></li>
<li class=''><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#FFFFFF"</span><span class='tag'>></span><span>2</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class=''><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#CCCCCC"</span><span class='tag'>></span><span>3</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span></li>
<li class=''><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#FFFFFF"</span><span class='tag'>></span><span>4</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class=''><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#CCCCCC"</span><span class='tag'>></span><span>5</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span></li>
<li class=''><span> [java] 2 </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>table</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>body</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>html</span><span class='tag'>></span><span> </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>BUILD SUCCESSFUL </span></li>
<li class=''><span>Total time: 2 seconds </span></li>
<li class='alt'><span>D:\Hibernate\VMProject</span><span class='tag'>></span><span> </span></li>
</ol>
</div>
<p><font>代码</font></p>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
<li class='alt'><span><span>Microsoft Windows XP [版本 5.1.2600] </span></span></li>
<li class=''><span>(C) 版权所有 1985-2001 Microsoft Corp. </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>C:\Documents and Settings\Administrator</span><span class='tag'>></span><span>cd d:\hibernate\vmproject </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>C:\Documents and Settings\Administrator</span><span class='tag'>></span><span>d: </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>D:\Hibernate\VMProject</span><span class='tag'>></span><span>ant </span></li>
<li class='alt'><span>Buildfile: build.xml </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>copy-resources: </span></li>
<li class=''><span> [copy] Copying 1 file to D:\Hibernate\VMProject\build </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>compile: </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>BUILD SUCCESSFUL </span></li>
<li class='alt'><span>Total time: 1 second </span></li>
<li class=''><span>D:\Hibernate\VMProject</span><span class='tag'>></span><span>ant run </span></li>
<li class='alt'><span>Buildfile: build.xml </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>clean: </span></li>
<li class=''><span> [delete] Deleting directory D:\Hibernate\VMProject\build </span></li>
<li class='alt'><span> [mkdir] Created dir: D:\Hibernate\VMProject\build </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>copy-resources: </span></li>
<li class=''><span> [copy] Copying 2 files to D:\Hibernate\VMProject\build </span></li>
<li class='alt'><span> [copy] Copied 1 empty directory to 1 empty directory under D:\Hibernate\VMP </span></li>
<li class=''><span>roject\build </span></li>
<li class='alt'><span> </span></li>
<li class=''><span>compile: </span></li>
<li class='alt'><span> [javac] Compiling 2 source files to D:\Hibernate\VMProject\build </span></li>
<li class=''><span> [javac] 注意:某些输入文件使用了未经检查或不安全的操作。 </span></li>
<li class='alt'><span> [javac] 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>run: </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>html</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>head</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>title</span><span class='tag'>></span><span>test velocity</span><span class='tag'></</span><span class='tag-name'>title</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>head</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>body</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] hello Melet ! </span></li>
<li class=''><span> [java] yours CONSTANT: a final member </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] your firstName: yang </span></li>
<li class='alt'><span> [java] your lastName:zhao </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> [java] Status:false true true </span></li>
<li class=''><span> [java] true </span></li>
<li class='alt'><span> [java] health </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>table</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#CCCCCC"</span><span class='tag'>></span><span>1</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span></li>
<li class=''><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#FFFFFF"</span><span class='tag'>></span><span>2</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class=''><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#CCCCCC"</span><span class='tag'>></span><span>3</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span></li>
<li class=''><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#FFFFFF"</span><span class='tag'>></span><span>4</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class=''><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span></li>
<li class='alt'><span> </span><span class='tag'><</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'><</span><span class='tag-name'>td</span><span> </span><span class='attribute'>bgcolor</span><span>=</span><span class='attribute-value'>"#CCCCCC"</span><span class='tag'>></span><span>5</span><span class='tag'></</span><span class='tag-name'>td</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>tr</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span></li>
<li class=''><span> [java] 2 </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>table</span><span class='tag'>></span><span> </span></li>
<li class=''><span> [java] </span><span class='tag'></</span><span class='tag-name'>body</span><span class='tag'>></span><span> </span></li>
<li class='alt'><span> [java] </span><span class='tag'></</span><span class='tag-name'>html</span><span class='tag'>></span><span> </span></li>
<li class=''><span> </span></li>
<li class='alt'><span>BUILD SUCCESSFUL </span></li>
<li class=''><span>Total time: 2 seconds </span></li>
<li class='alt'><span>D:\Hibernate\VMProject</span><span class='tag'>></span><span> </span></li>
</ol>
</div>
19 楼
julyboxer
2007-07-27
个人感觉Velocity 作为数据显示模板是挺不错的...语法简单易用..而且引用Java对象只需要前面对象名后面加点还有属性名..确实挺方便的..
18 楼
galaxystar
2007-07-27
jsp太灵活, 导致不能从架构上约束程序员.
有些开发者习惯将业务逻辑扩散到页面上, 怎么办?
另, "( $linkFile" 为什么很多人喜欢在"("与"$linkFile"之间加个空格, 看到过很多这样的代码了, 按照checkstyle代码规则,这里是不能加空格的.
有些开发者习惯将业务逻辑扩散到页面上, 怎么办?
另, "( $linkFile" 为什么很多人喜欢在"("与"$linkFile"之间加个空格, 看到过很多这样的代码了, 按照checkstyle代码规则,这里是不能加空格的.
17 楼
ddandyy
2007-07-26
我说的就是你写的这种 直接从request中拿出来就这么写 也不行
#set ($num = $num + 1)
直接这么写 后面算完就已经错了 不管放不放到前面都没意义的
#set ($num = $num + 1)
直接这么写 后面算完就已经错了 不管放不放到前面都没意义的
16 楼
无聊神灯
2007-07-26
$num是int,输出是1+1,并不是想要的2,所以想得到2,就必须#set ($num = $num + 1) 然后 $num
15 楼
ddandyy
2007-07-26
如果前面有 #set($num = 1) 还好
如果是直接从request中拿出来就 ($num + 1) ......... 唉.......
还好这种东西我们业务中遇到的比较少
如果是直接从request中拿出来就 ($num + 1) ......... 唉.......
还好这种东西我们业务中遇到的比较少
14 楼
无聊神灯
2007-07-26
想输出 ($num + 1)的值必须借助中间变量,这个很郁闷.
还有对float类型好像不支持.
还有对float类型好像不支持.
13 楼
ddandyy
2007-07-26
如果前面是int当然不行 int有equals方法么 难道你就不会转一下么
#set($sss = "$person.getStatus()")
#if ($sss.equals())
没怎么多用过 从接触到现在也就只有两年而已
........ 看来上面都帮我说过了 我也不多说了 不知道你到底好好看过文档没有..... 唉....
@_@ 先看后面再看前面的习惯不好 看来得改改了.........
我前面说的对数字支持不好不是指单纯的符号应用
你是否试过 if ($num + 1 > 3)
#set($sss = "$person.getStatus()")
#if ($sss.equals())
没怎么多用过 从接触到现在也就只有两年而已
........ 看来上面都帮我说过了 我也不多说了 不知道你到底好好看过文档没有..... 唉....
@_@ 先看后面再看前面的习惯不好 看来得改改了.........
我前面说的对数字支持不好不是指单纯的符号应用
你是否试过 if ($num + 1 > 3)
12 楼
sg552
2007-07-26
楼上的方法不错,试过了,效果很好。
11 楼
无聊神灯
2007-07-26
sg552 写道
不是差了些,而是差很多。
对于数字, == 和equals 的实际效果是一样的。
JSP的灵活,在其中写JAVA代码是表现之一。你不能一棒子打死。如你不愿意写代码,写个tag出来也可以啊。或者用JSTL。
对于velocity,如果context中没有那个变量,就用不了。还不能判断null, 只能建立基本变量类型和Array, 1.4和以下的连Map, Set都建立不了。可能你认为这些都不是大问题,但是开发的时候就够让人头疼的了。
对于数字, == 和equals 的实际效果是一样的。
JSP的灵活,在其中写JAVA代码是表现之一。你不能一棒子打死。如你不愿意写代码,写个tag出来也可以啊。或者用JSTL。
对于velocity,如果context中没有那个变量,就用不了。还不能判断null, 只能建立基本变量类型和Array, 1.4和以下的连Map, Set都建立不了。可能你认为这些都不是大问题,但是开发的时候就够让人头疼的了。
#if ($obj) ##true或者不为null
10 楼
sg552
2007-07-26
补充一下,ddandyy,
1. 你确定上面回复的“用equals”,可以使用在int型上?
2. 你确定你用过Velocity? 算了,给你见识个东东吧。
ERROR 2007-07-26 11:43:54,656 CommonsLoggingLogSystem:logVelocityMessage - Right side ($user.ACCEPT_EMAIL) of '==' operation has null value. If a reference, it may not be in the context. Operation not possible. /WEB-INF/view/test/testVar.vm [line 4, column 13]
没有实践就没有发言权,velocity到底怎么样,只有亲身用过的才知道。
1. 你确定上面回复的“用equals”,可以使用在int型上?
2. 你确定你用过Velocity? 算了,给你见识个东东吧。
ERROR 2007-07-26 11:43:54,656 CommonsLoggingLogSystem:logVelocityMessage - Right side ($user.ACCEPT_EMAIL) of '==' operation has null value. If a reference, it may not be in the context. Operation not possible. /WEB-INF/view/test/testVar.vm [line 4, column 13]
没有实践就没有发言权,velocity到底怎么样,只有亲身用过的才知道。
9 楼
sg552
2007-07-26
不是差了些,而是差很多。
对于数字, == 和equals 的实际效果是一样的。
JSP的灵活,在其中写JAVA代码是表现之一。你不能一棒子打死。如你不愿意写代码,写个tag出来也可以啊。或者用JSTL。
对于velocity,如果context中没有那个变量,就用不了。还不能判断null, 只能建立基本变量类型和Array, 1.4和以下的连Map, Set都建立不了。可能你认为这些都不是大问题,但是开发的时候就够让人头疼的了。
对于数字, == 和equals 的实际效果是一样的。
JSP的灵活,在其中写JAVA代码是表现之一。你不能一棒子打死。如你不愿意写代码,写个tag出来也可以啊。或者用JSTL。
对于velocity,如果context中没有那个变量,就用不了。还不能判断null, 只能建立基本变量类型和Array, 1.4和以下的连Map, Set都建立不了。可能你认为这些都不是大问题,但是开发的时候就够让人头疼的了。
8 楼
ddandyy
2007-07-25
用equals
p.s: 你居然认为在jsp上写java是灵活的表现.......
无语ing..... 以前讨论过太多次了
p.s2: 找毛病你都找不到啊....... 对str和obj的使用velocity的表现还是相当不错的 如果说毛病 也就是对数字的处理差了些
p.s: 你居然认为在jsp上写java是灵活的表现.......
无语ing..... 以前讨论过太多次了
p.s2: 找毛病你都找不到啊....... 对str和obj的使用velocity的表现还是相当不错的 如果说毛病 也就是对数字的处理差了些
7 楼
sg552
2007-07-25
说几个错误答案:
错误答案1:
--------------------------------------------------------
#if($person.status==$person.STATUS_HEALTHY) 健康人
#else 病人
#end
错误答案2:
--------------------------------------------------------
#if($person.status==$some.pack.age.Person.STATUS_HEALTHY) 健康人
#else 病人
#end
错误答案1:
--------------------------------------------------------
#if($person.status==$person.STATUS_HEALTHY) 健康人
#else 病人
#end
错误答案2:
--------------------------------------------------------
#if($person.status==$some.pack.age.Person.STATUS_HEALTHY) 健康人
#else 病人
#end
6 楼
sg552
2007-07-25
velocity 作为严格的MVC是很好用。但是功能稍微复杂些就不行了。比如,要根据一个用户的状态显示文字,如:
如果用户不舒服 , 显示 病了。
否则 显示: 健康。
对应的类是:(写简单点)
some.pack.age.Person{
//用户的状态 ,1 健康的, 0 生病的。
private int status;
//状态常量, 健康的。
public static final STATUS_HEALTHY=1;
//状态常量, 生病的。
public static final STATUS_ILL=0;
//其他方法
}
然后,在前台某个vm页面显示这个人的状态。velocity context中已经存在了Person这个类的某个实例,可以通过$person调用。请问你怎么办?
----------------------------------------------------
也就是说,将如下JSP代码转换成VTL:
<%
if(person.getStatus()==person.STATUS_HEATHY){
out.print("健康人");
}else{
out.print("病人");
}
%>
如果用户不舒服 , 显示 病了。
否则 显示: 健康。
对应的类是:(写简单点)
some.pack.age.Person{
//用户的状态 ,1 健康的, 0 生病的。
private int status;
//状态常量, 健康的。
public static final STATUS_HEALTHY=1;
//状态常量, 生病的。
public static final STATUS_ILL=0;
//其他方法
}
然后,在前台某个vm页面显示这个人的状态。velocity context中已经存在了Person这个类的某个实例,可以通过$person调用。请问你怎么办?
----------------------------------------------------
也就是说,将如下JSP代码转换成VTL:
<%
if(person.getStatus()==person.STATUS_HEATHY){
out.print("健康人");
}else{
out.print("病人");
}
%>
5 楼
melet
2007-07-25
velocity是很好用。但是在做为模版时,对于没有的变量,你可以根据指令符号中的set或是conditions来判断一下。正如 ddandyy 所说的那样。
4 楼
sg552
2007-07-25
楼上的用一下velocity再来发言吧。
试着把一个 类的实例放到velocity上下文,然后在vm中引用这个类的常量,你看看行不行。
试着把一个 类的实例放到velocity上下文,然后在vm中引用这个类的常量,你看看行不行。
发表评论
-
”懒人“通用快捷键
2007-11-02 22:19 1273通用快捷键: 查找: ctlr ... -
《正规表达式》笔记1
2007-10-16 21:48 2960js 代码 以前正规表达式的学习笔记: ... -
web开发中如何调试ajax(图解全过程)
2007-08-16 21:15 4405在web开发过程中,一般都会用junit的TestCase ... -
在web开发应用中实现带有分页,导出及打印功能的实例(jasper报表开发)
2007-08-11 14:35 3957使用ireport工具可以design一个报表(简易报表,交 ... -
建模学习例子
2007-07-25 09:48 3329在项目协作中,建模工具起到了非同寻常的作用。 可以使项目管理员 ... -
case_jsp2
2007-07-24 08:22 1757昨天将以前在开发中经常使用的case_jsp2温习了一遍。以 ... -
参考appfuse学习实例
2007-07-23 18:13 1819工作两年了。最近回顾了一下自己当初学习时,制作的demo(st ... -
HIbernate学习笔录1
2007-07-20 08:10 1141去年年初的时候,买了 ... -
EJB学习笔录1
2007-07-20 07:20 4194声明以下目录结构摘自红工场:http://www.reds ... -
swing E版
2007-07-19 22:27 1308两年没有碰过swing了。昨晚跟同学聊了一会。问我现在还在用s ... -
webwork in action(源码)
2007-07-19 11:26 53介绍技术点: OS(OpenSymphony)的SiteMes ... -
使用模式设计及java5新特性在HibernateDAO中的应用
2007-07-18 15:01 1291"冻迷"看图猜猜是用的哪种设计模式及jav ... -
新手入门必看的30个问题!!!!!! (引用篇)
2007-07-18 13:43 20想要了解更多吗?想的 ... -
j2ee架构师认证指南笔录2
2007-07-14 13:40 1176虽然80端口是http的默认端口,但是http可以根据需要在任 ... -
j2ee架构师认证指南笔录1
2007-07-14 13:40 1377体系结构是将一系列具 ...
相关推荐
在Web开发领域,Velocity是一个非常重要的模板引擎,它被广泛应用于生成动态网页内容。Velocity由Apache软件基金会开发并维护,是Apache Jakarta项目的一部分。其设计目标是提供一个简单易用但功能强大的工具,用于...
- **VelocityTools/VelocityViewServlet**:这是一种较为简便的集成方式,通过 VelocityTools 提供的 VelocityViewServlet 快速实现 Velocity 在 Web 应用中的集成。只需进行简单的配置即可使用。 - **VelocityTools...
在Java Web开发中,Velocity是一个非常流行的模板引擎,它允许开发者将HTML页面设计与业务逻辑相分离,使得开发者可以专注于后端逻辑,而设计师则可以自由地设计用户界面。Velocity提供了一种简洁、高效的模板语言,...
### Velocity+Spring 2.0+Hibernate 的 Web 应用开发框架 #### 一、引言 随着互联网技术的发展,Web 应用系统的复杂度不断提高,为了更好地组织和管理应用程序,MVC(Model-View-Controller)架构逐渐成为主流。在...
Velocity模板引擎技术是Java Web开发中的一种重要技术,旨在解决Java Web页面视图和业务逻辑的耦合问题。通过使用Velocity模板引擎技术,可以将Java Web页面视图和业务逻辑分离,提高开发效率和页面生成速度。 ...
5. **与其他系统集成**:Velocity不仅限于Web开发,它可以用于生成SQL、PostScript、XML等,甚至可以作为独立工具生成源代码或报告。在Turbine框架中,Velocity作为模板服务组件,进一步强化了MVC模型的实现。 6. *...
**Velocity** 是一款高性能的模板引擎,常用于Web应用开发中生成HTML页面,同时也支持其他类型的文本输出,如XML、PDF等。它的主要优势包括: - **简洁性**:Velocity允许设计师无需深入理解编程语言就能创建动态...
在这个项目中,我们将探讨如何将Velocity集成到一个基于Struts 1.x的Web应用中,以便更好地理解和应用这些技术。 首先,我们需要了解Struts框架。Struts是一个用于构建MVC(Model-View-Controller)架构的Java库,...
VelocityWeb应用开发指南中文版
- **应用场景**:除了在 Web 开发中使用外,Velocity 还可以用于生成 SQL 和 PostScript、XML 文件等。此外,还可以用作独立工具生成源代码或报告,或是作为其他系统的一个组成部分。 #### 二、Velocity 的核心价值...
1. **Spring MVC**: Spring框架提供了对Velocity的集成,使得在Spring应用中使用Velocity变得更加方便。 2. **Hibernate**: 与ORM框架如Hibernate结合,可以将数据库查询结果直接渲染到页面上。 3. **Maven**: ...
Velocity是Apache软件基金会的一个开源项目,是一个快速、简单且可扩展的模板引擎,主要用于Web应用中的视图层,允许开发者将HTML页面设计与业务逻辑分离。在Eclipse中集成Velocity插件,可以方便地进行Velocity模板...
除了在Web开发中的应用,Velocity还能用于生成SQL、PostScript、XML等格式的文档。它也可以作为一个独立工具来生成源代码和报告,或者作为其他系统组件的集成工具。例如,Velocity能够为Turbine Web开发框架提供模板...
【Velocity模板应用...总结来说,Velocity是一个强大的模板引擎,它简化了Web开发中的动态内容生成,使开发者能够更高效地组织和管理应用的视图层。通过熟练掌握Velocity的使用,可以提升项目的可维护性和开发效率。
这些JAR文件在Java Web应用中尤其有用,特别是对于那些基于MVC框架(如Struts或Spring MVC)的应用。Velocity可以作为视图层的模板引擎,使得开发者可以通过简单的模板语言来生成动态HTML,而无需深入理解复杂的JSP...
主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。 书中内容注重理论与实践相...
通过学习这四本书,开发者不仅可以掌握Velocity的基本用法,还能深入了解其在Web开发中的高级应用,从而提高工作效率,创建出更加灵活和易于维护的Web应用。无论你是初学者还是经验丰富的开发者,这套教程都能提供...
主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。 书中内容注重理论与实践相...