通用标签和静态调用

发表时间:2017-05-16 15:47:38 浏览量( 34 ) 留言数( 0 )

学习目标:

1、了解通用标签的使用

2、了解静态调用的使用


学习过程:

一、通用标签

通用标签也是比较简单,这里就不一一的介绍了,用得多的还是循环迭代和条件判断这些,下面就举这两个作为例子讲解一下,其他的标签大家可以参考一下struts2的官方文档:

http://struts.apache.org/release/2.3.x/docs/generic-tag-reference.html

示例代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'userlist.jsp' starting page</title>

</head>

<body>
	<a href="userAdd.jsp">添加用户</a>
	<table>
		<tr>
			<td>序号</td>
			<td>姓名</td>
			<td>地址</td>
			<td>年龄</td>
			<td>性别</td>
			<td>注册时间</td>
			<td>操作</td>
		</tr>

		<s:iterator value="users" status="status" var="user">
			<tr <s:if test="#status.odd==true">style="background-color: gray"</s:if> >
				<td>
				  ${status.index+1 }
	
				</td>
				<td>
				   <s:property value="#user.username"/>
				</td>
				<td>
				  <s:property value="addr"></s:property>
				</td>
				<td> <s:property value="age"></s:property></td>
				<td>
				   <s:if test="gender==1">
				   男
				   </s:if>
				   <s:else>
				      女
				   </s:else>
				</td>
				<td>
				  <s:property value="registerTime"/>
				</td>
				<td>
				  <a href="toupdate.do?uid=<s:property value='userId'/>">修改</a>
				</td>
			</tr>
		</s:iterator>
	</table>
	
	20岁以下
		<table>
		<tr>
			<td>序号</td>
			<td>姓名</td>
			<td>地址</td>
			<td>年龄</td>
			<td>性别</td>
			<td>注册时间</td>
			<td>操作</td>
		</tr>
         <!-- 投影 -->
		<s:iterator value="users.{? #this.age <20}" status="status" var="user">
			<tr <s:if test="#status.odd==true">style="background-color: gray"</s:if> >
				<td>
				  ${status.index+1 }
	
				</td>
				<td>
				   <s:property value="#user.username"/>
				</td>
				<td>
				  <s:property value="addr"></s:property>
				</td>
				<td> <s:property value="age"></s:property></td>
				<td>
				   <s:if test="gender==1">
				   男
				   </s:if>
				   <s:else>
				      女
				   </s:else>
				</td>
				<td>
				  
				  <!-- 静态调用 -->
				  <!-- @类@方法名(...) -->
				  <s:property value="@com.util.MyDateFromat@formatDate(#user.registerTime)"/>
				</td>
				<td>
				  <a href="toupdate.do?uid=<s:property value='userId'/>">修改</a>
				</td>
			</tr>
		</s:iterator>

	</table>
	
</body>
</html>

二、静态调用

静态调用事实上并不推荐使用,因为这样可能会破坏了MVC三层框架的结构,不过有的时候还是挺有用的,但是大家不要滥用就是了。静态调用其实就是在页面上面直接调用后台的java代码里面的静态方法。步骤如下:

1、设置配置文件。支持静态方法调用

#是否可以访问后台的静态方法
struts.ognl.allowStaticMethodAccess=true

2、定义静态方法。代码如下:

package com.util;

import java.sql.Date;
import java.text.SimpleDateFormat;

public class MyDateFromat {
	public static String formatDate(Date date){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}
}

3、在页面上面调用

调用格式是:

@完整类名@方法名(...)。

 <!-- 静态调用 -->
<!-- @类@方法名(...) -->
<s:property value="@com.util.MyDateFromat@formatDate(#user.registerTime)"/>