Struts2 Chater6 Struts2标准标签库!

 
<!--
Struts2 Chater6 Struts2标准标签库!
Goal:目标并不是让我们用Struts2中的标签去替换我们以前学的标准标签库,相反,
使用我们以前学的东西来替换Struts2中的标签!
-->
要在页面中使用Sruts2中的标签,那就需要引入标签库:
<%@ taglib uri="/struts-tags" prefix="s"%>
在这里说明一下,如果使用的是struts的标签,那么,EL表达式将在这个标签中不起任何作用,反而会报错,
因为在struts中默认使用的是ONGL这种脚本语言,所以,很多情况下,我们是不会使用Struts标签的,但是
几种情况下列外:
注:在Filter中不要忘记了过滤一下写了该标签的页面!
	1)<s:action name="action的名称"></s:action>
		这个标签用得比较多~关键是标准标签库中的<c:import url=""></c:import>这个标签不能引用action
		所以当我们要访问action时就要使用<s:action name="">了
		
		<s:action name="action的名称">
		讲解:name指的是action的名称,但是后面不用在.action了
		action的名称指的是在Struts.xml中配置的action的名称!
		
		eg:<s:action name="queryUser"></s:action>
		在struts.xml中:<action name="*User" class="...." method="{1}"/>
		这样就可以在query方法中进行查询数据,在用ServleteActionContext.getRequest().setAttribute()进行传值了,
		在页面:${requestScope.XXX}进行取值
		然后在附带一句:能够访问action的除了Struts的标签,还可以使用JQuery中的额AJAX来访问:
		$(function(){
			$.post("action的名称.action",{参数列表},function(data){
				//可以写关于数据交互的代码了!
			});
		});
		
		eg:
		$(function(){
			$.post("queryUser.action",{pageId:1},function(data){
				var myData=$(eval(data));
				myData.each(function(i,item){
					//
				});
			});
		});
		
		注意,写了要访问的action名称后可不能忘记.action了哦!

二,这个是写给我自己的:javaBean
	<!--相对于JSP-->
	<%
		UserInfo uinfo=new UserInfo();
		uinfo.setUserName("Kerry");
	%>
	
	<!--相对于JavaBean-->
	<jsp:useBean id="uinfo" class="com.shu.model.UserInfo">
		<jsp:setProperty property="userName" name="uinfo" value="Kerry"/>
	</jsp:userBean>
	
	<!--相对于JSTL-->
	<c:set target="${uinfo}" property="userName" value="Kerry"/>
	
	三,被忽略的伯乐
	<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
	与
	<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
	
	转换时间格式用的:
	<%
		Date d=new Date();
	%>
	<f:formatDate value="${d}" pattern="yyyy-MM-dd HH:mm:ss:S"/>
	
	获取长度:
	<fn:len(${list_data})/>
	
三,其余的都么有什么实际的意义了~这里再来回顾一下Json
//在方法中:
public void query(){
	//省略了N步
	List list_data=DBUtil.commonQuery(sql,Data.class);
	StringBuffer strBuf=new StringBuffer("{[");
	for(data da : list_data){
		//注意~千万要注意,在这里的值中,千万不能,一定要记住要用单引号,不然在JS中使用eval会出错!
		strBuf.append("{id:'"+da.getId()+"',name:'"+da.getName()+"',....},");
	}
	//删掉最后一个无用的",",这个方法在String中没有,但是在StringBuffer中有
	strBuf.deleteChar(strBuf.lastIndexOf(","));
	strBuf.append("]}");
	HttpServletResponse response=ServletActionContext.getResponse();
	response.setCharacterEncoding("UTF-8");
	ResponseWriter out=response.getWriter();
	out.print(strBuf);
	out.flush();
	out.close();
}
在JQuery中:
$(function(){
	$.post("queryUser.action",{xxx},function(data){
		//把data转为JS对象,再把JS对象转为JQuery对象
		var myData=$(eval(data));
		myData.each(function(i,item){
			//可以这样取值完全是有JSON这种格式的好处,所以这个很受青睐!
			var id=item.id;
			var name=item.name;
			//so~when we get the value we can do everthing with it!
		});
	});
});


剩下的多是比较比较有点不太符合科学的~呵呵~所以就略过不讲了O(∩_∩)O~
<!--
Author:Lovingshu's Forever
Date:2011-10-30 19:40
Remark:Ha Ha~ Today we'd gone to mountain GeLe,Oh~man~I'd break my limited!
And the meal there is very good tasty and cheap!It's really good,I like it(I mean the place!)!
-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值