<!--
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!)!
-->
Struts2 Chater6 Struts2标准标签库!
最新推荐文章于 2024-07-02 14:30:13 发布