- <#assign ww=JspTaglibs["/WEB-INF/lib/webwork.tld"] />
- 现在tld文件一般都打在webwork包里了,我从jar的META-INF目录下找到taglib.tld文件,把他放到
- lib目录下,改名为webwork.tld
- =========================================================================
- <@ww.form action="transfer4">
- <@ww.token/>
- <@ww.textfield label="Amount" name="amount" required="true" value="400"/>
- <@ww.hidden name="'id'" />
- <@ww.textarea label="'Details'" name="'details'" rows=5 cols=40 />
- <@ww.submit value="Transfer money"/>
- <!--</span-->@ww.form>
- =========================================================================
- <@c.html "登陆">
- <form action="login.action" method="post">
- <@c.input id="username" name="username" size="12" maxlength="12"
- value="${username?default('')}"/>
- <@c.input type="submit" value="登u24405 "/>
- <!--</span-->form>
- <!--</span-->@c.html>
- =======标签=================================================================
- <%@ taglib prefix = "ww" uri = "/webwork" %>注意斜杠,之前版本是没斜杠的
- <ww:property value=""/>value指定了要读取的Model对象的属性名
- 如<ww:property value="#session['username']"/>
- 或<ww:property value="user.username"/>
- parameter['username']-----request.getParameter("username");
- request['username']------request.getAttribute("username");
- session['username']---------
- application['username']---------
- 这些特殊的要要#操作符引用。对于常量,要用单引号包围。
-
- <ww:iterator value="message" status="index">
- <ww:if test="#index.odd==true">
- <ww:property/><br/>
- <!--</span-->ww:if>
- <ww:else>
- <ww:property/><br/>
- <!--</span-->ww:else>
- 索引变量提供了以下几个常用判定方法:
- first
- last
- odd奇数
- even当前迭代次数是否是偶数
- 引用如:#index.odd
- <ww:elseif test=""><!--</span-->ww:elseif>
- <ww:if test="error!=null"><!--</span-->ww:if>
- =========================================================================
- 在FreeMarker中,好像要使用Request.Session才行,如Request.enable,Session.name?if_exists
-
- 转换${1.1?int}
- ${aa?c}作用把String转换为数字,因为freemarker默认的会采用科学计数法,比如1,000,000
- html:对字符串进行HTML编码
- cap_first:使字符串第一个字母大写
- lower_case:将字符串转换成小写
- upper_case:将字符串转换成大写
- trim:去掉字符串前后的空白字符
- size:获得序列中元素的数目
- int:取得数字的整数部分(如-1.9?int的结果是-1)
-
- <#if s?exists>
- ${s?if_exists}
- exists用在逻辑判断,而if_exists用来打印东西时用到,如果存在打印,不存在打印空字符串.
- exp1?exists将会被exp1??代替
- exp1?if_exists将会被exp1!代替
- exp1?default(exp2)将会被exp1!exp2,这些在2.4版本中会体现到??
-
- ****FreeMarker**************************************************************************************
- <#if errorMsg?exists && errorMsg.length() != 0>
- <li>${errorMsg}<!--</span-->li>
- <!--</span-->#if>
- ${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
- ${foo?string("yes", "no")}//foo为true,返回yes,否则返回false
- <#list 1..count as x>
- ${y} ${count}/${x}: <#nested>
- <!--</span-->#list>
- exp?substring(from, toExclusive)
- exp?substring(from)
-
![](https://p-blog.csdn.net/images/p_blog_csdn_net/silindong/406411825.jpg) - 针对数字的内建对象:c:这个内建对象转换数字为字符串。
- ==================================================================================
- webwork中针对数字,freemarker默认采用科学计数法显示;我们可以在freemarker.properties里定义格式如:
- #0表示是阿拉伯数字
- number_format=0
- #时间格式设置
- date_format=yyyy-MM-dd HH:mm
- 我在类里面定义了一个Util.Date类型的,如Date birth;在页面上我用${date?if_exists?datetime}显示;
- 当然,如果在配置文件中没有配置时间格式,可以采用以下的方式达到想要的结果:
- ${date?if_exists?string("yyyy-MM-dd HH:mm")}
-
- <#if type == "password">
- <#elseif type == "calendar">
- <#else>
- <!--</span-->#if>
-
- Welcome ${user!}!
- Welcome ${user!'your name'}!
-
- 如果user找不到值,会输出
- Welcome !
- Welcome your name!
-
- ${user?if_exists}
- ${user?default('your name')}
- =========================================================================
- private SimpleDateFormat df = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss");
- private final Calendar lastModifiedCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
- private final String lastModified = df.format(lastModifiedCal.getTime());
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
- response.setHeader("Date",df.format(cal.getTime())+" GMT");
- cal.add(Calendar.DAY_OF_MONTH,1);
- response.setHeader("Expires",df.format(cal.getTime())+" GMT");
- response.setHeader("Retry-After",df.format(cal.getTime())+" GMT");
- response.setHeader("Cache-Control","public");
- response.setHeader("Last-Modified",lastModified+" GMT");
- =========================================================================
- FreeMarker中对方法的调用
- 1,无参方法使用
- 我们只要定义一个get方法,如:
- public String getTest(){
- return "weishuwei";
- }
-
- 然后我们在页面就可以用${test}调用了,注意不能用${getTest()},test前必须用get前缀
- 2,带参方法使用
- public String getMytest(String str){
- return str;
- }
- 带参方法不能直接使用,必须用个变量去调用它如:${courseHelper.getMytest("wei")},直接${getMytest("wei")}会报错
|