好久没写笔记了,今天来兴致了,写点意思一下吧。
1.Struts Bean标签库中的标签可以访问已经存在的JavaBean以及他们的属性,还可以定义心的Bean,把他存放在
page范围内或者用户指定的范围内,供网页内其他元素访问。
2.Bean标签库大致可以分为以下三类:1/用于访问HTTP请求信息或JSP隐含对象的Bean标签。2/用于访问Web应
用资源的Bean标签。3/用于定义或输出JavaBean的Bean标签。
3.“<bean:header>”标签用于检索HTTP请求中的Header信息。如:
<bean:header id="lang" name="Accept-language"/>其中id是java.lang.String类型的标量用于存储请求Header中
的"Accept-Language"信息。整个操作等价于下面的JSP程序段。
<%
String id = "lang";
String name = "Accept-Language";
String value = ((HttpServletRequest)pageContext.getRequest()).getHeader
(name);
pageContext.setAttribute(id,value);
%>
4.<bean:parameter>标签用于检索HTTP请求参数。如:<bean:parameter id = "arg1" name="testg"
value="noarg"/> 的变量不再是java.lang.String类型,而是字符串数组类型,用于存放所有和name属性匹配的请求
参数值。如:<bean:parameter id="arg2" multiple="yes" name="testarg" value="noarg"/> 所得到的testarg中就存
在三个参数arg2[0]=123,arg2[1]=456,arg[2]=789。
5.<bean:resource>标签用于检索Web资源的内容。如:
<bean:resource id="resource" name="/testpage.jsp"/><bean:write name="resource"/>
,它的值为testpage.jsp的源文件内容。这个标签有意思,如果可以任意指定一个URL就可以返回相应的原码文
件,是不是就可以动态的监视某个网页上的数据和行为了呢?只是个猜想,还没试过。有机会看看。
6.<bean:struts>标签用于检索Struts框架内在的对象,如:ActioinFormBean,ActionForward或ActionMapping。
如:<bean:struts id="forward" forward="BeanResource"/>
7.<bean:include>标签和标准的JSP标签<jsp:include>很相似,都可以用来包含其他Web资源的内容,区别在于
<bean:include>标签把其他Web资源的内容存放在一个变量中,而不是直接显示在网页上。
8.<bean:define>标签用于定义一个变量。id属性指定变量的名字,toScope属性指定这个变量的存放范围。设置i
d变量有三种方式:1/<bean:define id="stringBean" value="BeanTaglibs"/>设置 value属性,此时
假设请求的URL为http://localhost:8080/beantaglibs/BeanServlet.jsp?testarg=123&testarg=456&testarg789那么
如果希望检索出所有和参数名批判的请求参数,应该设置<bean:parameter>标签的multiple属性,此时id属性定义
的id属性定义的
变量为字符串类型,value属性代表这个变量的字符串值。2/ 同时设置name和property属性。name属性指定一个
已经存在的Bean,property属性指定已经存在的Bean的某个<bean:define id="contextBean" name="sessionBean"
property="servletContext"/> 属性 同时设置name属性和type属性。name属性指定已经存3/<bean:define
id="contextBean_copy" name="contextBean" type="javax.servlet.ServletContext"/>在的javaBean,type属性指定这
个javaBean的完整的类名。
9.<bean:size>标签用于获得Map,Collection或数组的长度。id属性定义的变量的值为Map,Collection或数组的长
度。name属性指定已经存在的Map,Collection或数组变量。
10.<bean:write>标签用于在网页中输出某个Bean或它的属性的内容。如:<bean:size id="length" name="lines"/>
<bean:write name="length"/>以上<bean:write>标签仅仅设置了name属性,<bean:write>标签处理类会调用name
属性指定的toString()方法获得字符串,然后输出字符串内容。如果希望输出Bean的某个属性,应该同时设置
<bean:write>标签的name属性和property属性。property属性指定Bean的属性,如。<bean:write>标签的format属
性用于设置输出数据格式。如:<bean:write name="contextBean" property="serverInfo"/>
<%
request.setAttribute("floatval",Float.valueOf("3.14159"));
Calendar gc=GregorianCalendar.getInstance();
gc.setTime(new java.util.Date(session.getCreationTime()));
request.setAttribute("now",gc);
%>
<bean:write format="#.####" name="floatval"/><BR>
<bean:write format="MM-dd-yyyy hh:mm:ss" name="now" property="time"/><BR>
以上代码定义的resource变量代表"/testpage.jsp"资源,因为没有设置input属性,所以resource变量为字符串类型
<bean:write>还有一个filter属性,默认值为true。如果filter属性为true,将把输出的内容中的特殊html符号作为普通
字符输出。如果为false则不会把输出内容中的特殊html符号转化为普通字符串。如:
<%
String boldStart="<B>":
String boldEnd="</B>";
request.setAttribute("bs",boldStart);
request.setAttribute("be",boldEnd);
%>
<bean:write name="bs"/ filter="true">bold
<bean:write name="be" filter="true"/><BR>
11.struts Logic标签库中的标签可以根据特定的逻辑条件来控制输出网页内容,或者循环遍历集合中的所有元素。
Logic标签库中的标签大致分为以下几类:1/进行比较运算的logic标签;2/进行字符串匹配的logic标签;3/判断指定
内容是否存在的logic标签。4/进行循环遍历的logic标签。5/进行请求转发或重定向的logic标签。
12.<logic:present>和<logic:notPresent>标签判断指定的对象是否存在,该标签有以下一些属性:1/cookie属性:
判断指定的cookie是否存在。2/header属性:判断指定的Http请求Header是否存在。3/role属性;判断当前通过权
限验证的用户是否具有指定的安全角色。4/user属性:判断通过权限验证的用户是否拥有指定的用户名。
5/parameter属性:判断指定的请求参数是否存在。6/name属性:判断指定的javaBean是否存在。7/同时设置
name和property属性:name属性指定javaBean,property属性指定javaBean的某个属性,判断这个属性是否存在并
且是否为null。