在jsp页面中使用自定义标记时下列哪个步骤是不需要的

在jsp页面中使用自定义标记时下列哪个步骤是不需要的,第1张

在jsp页面中使用自定义标记时是不需要的。这根本就不是java的引用标签,JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。

在jsp中,如果需要处理复杂数据时,在上方定义一个java方法是很有效的解决方案,把处理数据的责任推给该方法,然后该jsp页面的主流程就不受影响。当然也可以使用js定义方法来处理,js似乎更善于定义这样的方法来处理前台数据,但有时候jsp和js之间倒腾数据时会出乱码或者报一些找不到对象的错误,因此他们之间的互相传值还是越少越好。
看一看jsp中定义一个字符串处理的方法:
复制代码代码如下:
<%!
String splitString(String str, int a) {
if (str != null && strtrim()length() > 0 && a > 0) {
// 取得该字符串的字节长度
int length = strgetBytes()length;
// 全部不包括汉字
if (strlength() == length) {
// 如果截取长度是字符串长度以内,就substring,否则就取这个字符串
if (a < strlength()) {
return strsubstring(0, a);
} else {
return str;
}
} // 含有汉字
else {
StringBuffer sb = new StringBuffer();
// 截取算法 遍历字符串,并且监测a值
for (int i = 0; i < strlength() && a > 0; i++) {
// 如果是汉字算2个长度。
if (strcharAt(i) >= '\u4e00' && strcharAt(i) <= '\u9fa5') {
// 如果是汉字且不是最后一个字符,就加上,否则不加
if (a > 1) {
sbappend(strcharAt(i));
a -= 2;
}
// 不是汉字只算一个长度
} else {
sbappend(strcharAt(i));
a--;
}
}
return sbtoString();
}
}
return "输入有误";
}
%>
该方法的功能是,传入一个字符串和长度,返回截取后的字符串,长度会按照汉字两个、字母数字一个的方式来统计,如果最后一个是汉字,那么这个汉字就放弃掉,绝不能出现半个汉字的情况。
jsp中定义方法,需要注意以下几点:
1,需要使用<%! %>这样的标签包起来,这是jsp中定义变量或者方法的标志。
2,如果在方法中需要使用内置对象out时,一定要在方法的参数列表中传过来,并且要让方法跑出一个IO异常。
3,方法的范围就不要定义了,反正就是内部使用,直接使用缺省范围的就可以了。

我觉得上楼回答的不完全对,自定义标签,不一定就是tomcat给封装好了的,自己也可以实现接口,编写tld(标签库描述文件),然后标签创建成功,便可引入页面使用了。下面截一段API与大家讨论:
javaxservletjsptagext
Interface JspTag
All Known Subinterfaces:
BodyTag, IterationTag, LoopTag, SimpleTag, Tag
从上一段API内容中可以看出JspTag接口下又有BodyTag, IterationTag, LoopTag, SimpleTag, Tag几个子接口。
然后以SimpleTag接口为例,分享set_等方法之用意:
Method Summary(方法概要)
void doTag()
Called by the container to invoke this tag
当容器调用该方法时,唤醒该标签
JspTag getParent()
Returns the parent of this tag, for collaboration purposes
返回该标签的父标签
void setJspBody(JspFragment jspBody)
Provides the body of this tag as a JspFragment object, able to be invoked zero or more times by the tag handler
把JspFragment对象作为body提供给这个标签,能够被tag管理器调用0或多次。
void setJspContext(JspContext pc)
Called by the container to provide this tag handler with the JspContext for this invocation
设置上下文
void setParent(JspTag parent)
Sets the parent of this tag, for collaboration purposes
设置该标签的父标签
最后,一系列set方法,我觉得可以说成是对标签属性的设置


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13409657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存