|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.js 成绩:你想和JSTL配合事情。好比,在用本人的标签处置一些逻辑以后,让JSTL处置余下的事情。
看这个JSP例子:
<%
Stringname="diego";
request.setAttribute("name",name);
%>
<c:outvalue="${name}"/>
......
很多JSTL标签撑持El表达式,以是,只需你在本人的标签外部把值塞进request,其他jstl标签就可以利用它们
上面这个例子,从request内里获得对象,找到它属性的值,塞到request里往。
packagediegoyun;
importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.tagext.TagSupport;
importorg.apache.commons.beanutils.PropertyUtils;
importorg.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
publicclassSetVarTagextendsTagSupport
{
privateObjectvalue=null;
privateStringproperty=null;
privateStringvar=null;
publicvoidsetVar(Stringvar)
{
this.var=var;
}
publicvoidsetProperty(Stringproperty)
{
this.property=property;
}
publicvoidsetValue(Objectvalue)throwsJspException{
this.value=ExpressionEvaluatorManager.evaluate("value",value.toString(),Object.class,this,pageContext);
}
publicintdoEndTag()throwsJspException{
ObjectpropertyValue=null;
try{
propertyValue=PropertyUtils.getProperty(value,property);
}
catch(Exceptione){
thrownewJspException(e);
}
pageContext.setAttribute(var,propertyValue);
returnEVAL_PAGE;
}
}
编写TLD
<!--SetVarTag-->
<tag>
<name>set</name>
<tag-class>diegoyun.SetVarTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
编写JSP
<%@pagelanguage="java"%>
<%@pageimport="diegoyun.vo.*"%>
<%@tagliburi="/WEB-INF/tlds/diego.tld"prefix="diego"%>
<%@tagliburi="/WEB-INF/tlds/c.tld"prefix="c"%>
<html>
<bodybgcolor="#FFFFFF">
<%
Manman=newMan();
man.setName("diego");
request.setAttribute("man",man);
%>
Getvaluefromrequestandsetitspropertyvalueintorequest:<br>
<diego:setvalue="${man}"property="name"var="myname"/>
nowuseOutTagofjstltaglibtogetthename:<br>
valueis:<c:outvalue="${myname}"/>
</body>
</html>
运转,效果以下:
Getvaluefromrequestandsetitspropertyvalueintorequest:
nowuseOutTagofjstltaglibtogetthename:
valueis:diego
停止语
和JSTL交互长短常有效的手艺。在JSTL里供应了很多完成基础功效的标签,如输入,轮回,前提选择等。仅在处置本人特定逻辑的时分才完成本人的标签,并供应和jstl交互,能年夜年夜进步重用性和削减事情量。
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。 |
|