當前位置:首頁 » 編程軟體 » freemarker腳本

freemarker腳本

發布時間: 2022-08-30 07:47:00

A. freemarker模板中的javascript腳本的問題

<script language= "javascript">alert('aa');</script>
或是
<script type = "text/script">alert('aa');</script>
試試看

B. 在html頁面中包含<#include (ftl文件) />這是什麼語法,提供點相關資料!

這是 Freemarker網頁展示技術的語法,類似於jsp(也是網頁展示技術),freemarker現在國外用得比較多,好處我就不說了,<#include>這種是freemarker自帶的標簽命令,類似於jsp的<!@include>,
而<@p.>這是通過freemarker的宏自定義出來的命令,相當於jsp 的自定義標簽.
ps:當然網頁展示技術的背後,都必定會有解析這些命令的,並最終轉化成網頁能識別的(html)代碼(架包)

C. freemarker怎麼使用CSS樣式表以及JS文件

用宏macro,在宏中,引用css樣式和js,引用和html中的一樣的

先找到當前界面的上一級目錄../css.css:其中「../」指當前目錄的上級目錄,其中CSS文

<!DOCTYPEHTML>
<html>
<head>
<#assignctx=request.contextPath/>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8;NO-CACHE"/>
<linkrel="icon"href="${ctx!}/images/JASU_Squares_J.jpg"/>

<linktype="text/css"rel="stylesheet"href="${ctx}/css/show_list.css"/>
<scripttype="text/javascript"language="javascript"src="${ctx}/js/jquery/jqueryui/jquery.ui.core.min.js"></script>
</head>
<@pageOnloadJs/><!--頁面初始化執行的腳本-->
<@body/>
</html>

D. javascript中如何載入freemark指令

freemarker運行在伺服器上,javascript運行在客戶端瀏覽器上。
freemarker的模板、宏、函數指令等等都在伺服器上。等到javascript在客戶電腦的瀏覽器中解釋執行時,之前在伺服器上的freemarker早處理完了(伺服器處理完成才有response響應包括javascript腳本代碼本身發回到瀏覽器去)。
所以你說javascript怎麼載入freemarker指令?就像用javascript可以調用EL表達式函數嗎?

E. freemarker thymeleaf哪個好

我也是來問這個問題的。。。目前了解,性能方面thymeleaf更差。但是thymeleaf由於使用了標簽屬性做為語法,模版頁面直接用瀏覽器渲染,使得前端和後端可以並行開發。freemarket使用</>這樣的語法,就無法直接使瀏覽器渲染出原本頁面的樣子。
thymeleaf的性能一直是大家痛擊之處。有人說thymeleaf開啟緩存後,性能會比freemarker更好,但是開啟緩存有什麼弊端我就不知道了。(會不會更新了模版後,頁面沒變化?)
很難說兩個誰好誰壞,都有不足都有優點。目前兩者都還有更新,有團隊支持。不像velocity已經6年沒更新了。但是我看的sprint 實戰 第4版中,有一小節專門講了thymeleaf,為什麼不講freemarker,我也不懂,要問作者。為什麼IDEA中直接提供了thymeleaf的framework支持??綜上,但是為什麼網友詬病thymeleaf性能問題的更多,而誇獎的人沒有幾個??我也是迷糊了。

我是因為我的項目需要用到這些所以今天花了一天的時間,找這些資料,目前,我個人比較傾向thymeleaf。

F. 用freemarker的頁面,還可以用jQuery嗎

用宏macro,在宏中,引用css樣式和js,引用和html中的一樣的
先找到當前界面的上一級目錄 ../css.css :其中「../」指當前目錄的上級目錄,其中CSS文
<!DOCTYPE HTML>

<html>
<head>
<#assign ctx = request.contextPath />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8;NO-CACHE" />
<link rel="icon" href="${ctx!}/images/JASU_Squares_ J.jpg" />
<link type="text/css" rel="stylesheet" href="${ctx}/css/show_list.css"/>
<script type="text/javascript" language="javascript" src="${ctx}/js/jquery/jqueryui/jquery.ui.core.min.js"></script>
</head>
<@pageOnloadJs /><!-- 頁面初始化執行的腳本 -->
<@body />
</html>

G. freemarker如何獲取頁面參數

1. 前台傳到後台:不用說了。。你會的
2. 兩個ftl頁面之間傳參數,不能向jsp那樣直接取,要過一下後台。
思路就是這樣!

H. java代碼生成器怎麼用

zip包,然後自動下載下來

1.預先定義好模板

最後放出源代碼:

package com.et.controller.system.createcode;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.et.controller.base.BaseController;
import com.et.util.DelAllFile;
import com.et.util.FileDownload;
import com.et.util.FileZip;
import com.et.util.Freemarker;
import com.et.util.PageData;
import com.et.util.PathUtil;

/**
* 類名稱:FreemarkerController
* 創建人:Harries
* 創建時間:2015年1月12日
* @version
*/
@Controller
@RequestMapping(value=」/createCode」)
public class CreateCodeController extends BaseController {

/**
* 生成代碼
*/
@RequestMapping(value=」/proCode」)
public void proCode(HttpServletResponse response) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();

/* ============================================================================================= */
String packageName = pd.getString(「packageName」); //包名 ========1
String objectName = pd.getString(「objectName」); //類名 ========2
String tabletop = pd.getString(「tabletop」); //表前綴 ========3
tabletop = null == tabletop?」」:tabletop.toUpperCase(); //表前綴轉大寫
String zindext = pd.getString(「zindex」); //屬性總數
int zindex = 0;
if(null != zindext && !」」.equals(zindext)){
zindex = Integer.parseInt(zindext);
}
List<String[]> fieldList = new ArrayList<String[]>(); //屬性集合 ========4
for(int i=0; i< zindex; i++){
fieldList.add(pd.getString(「field」+i).split(「,fh,」)); //屬性放到集合裡面
}

Map<String,Object> root = new HashMap<String,Object>(); //創建數據模型
root.put(「fieldList」, fieldList);
root.put(「packageName」, packageName); //包名
root.put(「objectName」, objectName); //類名
root.put(「objectNameLower」, objectName.toLowerCase()); //類名(全小寫)
root.put(「objectNameUpper」, objectName.toUpperCase()); //類名(全大寫)
root.put(「tabletop」, tabletop); //表前綴
root.put(「nowDate」, new Date()); //當前日期

DelAllFile.delFolder(PathUtil.getClasspath()+」admin/ftl」); //生成代碼前,先清空之前生成的代碼
/* ============================================================================================= */

String filePath = 「admin/ftl/code/」; //存放路徑
String ftlPath = 「createCode」; //ftl路徑

/*生成controller*/
Freemarker.printFile(「controllerTemplate.ftl」, root, 「controller/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName+」Controller.java」, filePath, ftlPath);

/*生成service*/
Freemarker.printFile(「serviceTemplate.ftl」, root, 「service/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName+」Service.java」, filePath, ftlPath);

/*生成mybatis xml*/
Freemarker.printFile(「mapperMysqlTemplate.ftl」, root, 「mybatis_mysql/」+packageName+」/」+objectName+」Mapper.xml」, filePath, ftlPath);
Freemarker.printFile(「mapperOracleTemplate.ftl」, root, 「mybatis_oracle/」+packageName+」/」+objectName+」Mapper.xml」, filePath, ftlPath);

/*生成SQL腳本*/
Freemarker.printFile(「mysql_SQL_Template.ftl」, root, 「mysql資料庫腳本/」+tabletop+objectName.toUpperCase()+」.sql」, filePath, ftlPath);
Freemarker.printFile(「oracle_SQL_Template.ftl」, root, 「oracle資料庫腳本/」+tabletop+objectName.toUpperCase()+」.sql」, filePath, ftlPath);

/*生成jsp頁面*/
Freemarker.printFile(「jsp_list_Template.ftl」, root, 「jsp/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName.toLowerCase()+」_list.jsp」, filePath, ftlPath);
Freemarker.printFile(「jsp_edit_Template.ftl」, root, 「jsp/」+packageName+」/」+objectName.toLowerCase()+」/」+objectName.toLowerCase()+」_edit.jsp」, filePath, ftlPath);

/*生成說明文檔*/
Freemarker.printFile(「docTemplate.ftl」, root, 「說明.doc」, filePath, ftlPath);

//this.print(「oracle_SQL_Template.ftl」, root); 控制台列印

/*生成的全部代碼壓縮成zip文件*/
FileZip.zip(PathUtil.getClasspath()+」admin/ftl/code」, PathUtil.getClasspath()+」admin/ftl/code.zip」);

/*下載代碼*/
FileDownload.fileDownload(response, PathUtil.getClasspath()+」admin/ftl/code.zip」, 「code.zip」);

}

}

I. 什麼是腳本引擎,它有什麼作用

腳本引擎,就是一個計算機編程語言的解釋器,如用於建網站的asp、php等,它的功能是解釋執行用戶的程序文本,將它譯成計算機能執行的機器代碼,完成一系列的功能。例如,Freemarker和Velocity通常被稱為腳本引擎。Erb也會出現在這里,但奇怪的是,它並沒有經常被稱為腳本引擎。

腳本語言通常不需要編譯步驟,因此可以更簡單地作為shell腳本或從shell腳本運行。包括awk、perl、tcl、python、ruby等,這些語言通常需要簡潔,類型安全性通常是可選的。Windows在其腳本宿主功能中支持多種語言。這將腳本語言公開給Windows中的各種組件。

(9)freemarker腳本擴展閱讀:

java腳本引擎的設計原理淺析

1、編譯型 vs 解析性

如果能夠產生一個獨立的class文件則屬於前者,例如:fel,simpleEl,groovy

否則通過編譯成自定義的內存指令就屬於後者,例如:QLExpress,aviator,JEXL

2、java語法 vs 表達式語言(EL expression language) vs 腳本(script)

如果語法和java保持一致,不做任何擴展,就是屬於第一種:如果語法大量簡化(比如去掉顯示類、方法、變數聲明,異常處理,邏輯跳轉循環等等),只支持簡單的數學公式、對象方法成員變數調用, 就屬於第二種:fel,simpleEl,aviator。

介於兩者之間,即提供很好的語法糖,又支持大部分java語法:for循環,if判斷,函數定義,就屬於第三種:groovy,QLExpress

參考資料來源:網路-腳本引擎

熱點內容
抽獎源碼帶後台 發布:2025-02-08 20:33:54 瀏覽:224
歐博中央空調原始密碼是多少 發布:2025-02-08 20:33:47 瀏覽:335
運動使人快樂緩解壓力 發布:2025-02-08 20:27:01 瀏覽:98
linux命令大文件 發布:2025-02-08 20:25:06 瀏覽:897
C蟻群演算法 發布:2025-02-08 20:21:25 瀏覽:513
私人搭建伺服器能幹嘛 發布:2025-02-08 20:21:24 瀏覽:596
網吧怎麼通過伺服器玩網路游戲 發布:2025-02-08 19:59:52 瀏覽:914
文檔編輯加密 發布:2025-02-08 19:56:31 瀏覽:392
phpmysql存儲過程實例 發布:2025-02-08 19:54:40 瀏覽:161
淘寶賣的地下城腳本 發布:2025-02-08 19:41:40 瀏覽:62