`

struts1标签库

 
阅读更多

1、Bean标签库

Bean标签库中标签可以访问已经存在的JavaBean以及它们的属性,还可以

定义新的Bean,把它存放在用户指定的任何范围内,供网页或者其它元素访问,

Bean标签库分为以下三类:

   1) 用于访问HTTP请求信息或者JSP隐含对象的Bean标签

a) <bean:cookie>

用于检索发送到服务器端的Cookie,包括以下属性:

id: 定义一个Cookie类型的变量,这个变量又是作为将信息

存放在page范围内的key。

name: 指定Cookie的名字

value: 指定Cookie的默认值,如果name指定的Cookie不存在,

就使用value指定的属性值。

例如: <bean:cookie id="cookie" name="cookieName"

value="defaultValue"/>

先检索名为"cookieName"的Cookie是否存在,如果

存在,就把它的值赋给cookie变量的value值,如果

不存在,cookie变量的值就采用默认值"defaultValue"。


b) <bean:header>

用于检索HTTP请求中的Header信息,包括以下属性:

id: 定义一个存放信息的字符串变量,这个变量又是作为

将信息存放在page范围内的key。

name: 指定要检索的Header中的字段名字

例如: <bean:header id="lang" name="Accept-Language"/>

等于

String value =

(HttpServletRequest)request.getHeader("Accept-Language");

String lang = value;

pageContext.setAttribute("lang",value);


c) <bean: parameter>

用于检索HTTP的请求参数,包括以下属性:

id: 定义一个存放信息的字符串变量,这个变量又是作为

将信息存放在page范围内的key。

name: 指定请求的参数名

value: 指定请求参数的默认值

例如1: <bean:parameter id="arg1" name="testarg"

value="noarg"/>

等于

String temp = request.getParameter("testarg");

if(temp != null){

String arg1 = temp;

pageContext.setAttribute("arg1",temp);

}else{

String arg1 = "noarg";

pageContext.setAttribute("arg1","noarg");

}

例如2: <bean:parameter id="arg2" multiple="yes"

name="testarg" value="noarg"/>

arg2是一个存放所有request请求中参数值的字符串数组。

输出所有的参数值:

<%

for(int i = 0; i < arg2.length; i++){

out.write(arg2[i] + "<br>");

}

%>


d) <bean:page>

用于检索JSP隐含对象(如request、session、response)包括

以下属性:

id: 定义一个引用隐含对象的变量,这个变量又是作为

将信息存放在page范围中的key。

property: 指定隐含对象的名字,可选值包括application、

config、request、response和session。

例如: <bean:page id="this_session" property="session"/>

<bean:write name="this_session" property="creationTime"/>

表示定义了一个"this_session"变量,它引用JSP中

的session隐含对象,接着输出该变量中属性

createTime的值(其实是session中属性createTime的值)。


2) 用于访问Web应用资源的Bean标签

   a) <bean:message>

用于输出资源配置文件中的一条信息,<bean:message>标签的bundle

属性指定资源配置文件,它和Struts配置文件中的<message-resources>

元素的key属性匹配。如果没有设置bundle属性,就采用默认的资源配置文件。

Struts配置文件中配置了两个资源配置文件:

<message-resources parameter="ApplicationResources"/>

<message-resources parameter="SpecialResources" key="special"/>

第一个资源配置文件没有指定key属性,因此是默认的资源配置文件,

它的资源文件为ApplicationResources.properties。

第二个资源配置文件指定key属性为"special",它的资源文件

为SpecialResources.properties。

内容: hello=Hello,ereryone!


<bean:message>标签三种使用方式:

a1) <bean:message bundle="special" key="hello"/>

bundle --> <message-resources>中的key   

key --> SpecialResources.properties中的hello


注意: 如果<bean:message>中设置了属性bundle,那么

<message-resources>中一定要设置属性key,否则运行

时会报错的。


a2) <bean:message>标签中的属性name指定一个scope中的key,value为

资源配置文件中的key。

例如: <% request.setAttribute("stringBean","hello") %>

<bean:message bundle="special" name="stringBean"/>

hello --> SpecialResources.properties中的hello


a3) 同时指定<bean:message>标签的name和property,name指定

一个JavaBean,property指定JavaBean中的一个get方法,get方法

的返回值就是资源配置文件中的key。例如:

<%

SomeBean bean = new SomeBean();

bean.setName("hello");

request.setAttribute("someBean",bean);

%>

<bean:message bundle="special" name="someBean"

property="name"/>

bundle --> <message-resources>中的key

name --> request中的key(someBean)

property --> bean的getName()

getName()返回值(hello) --> 资源配置文件中key(hello)


   b) <bean:resource>

用于检索Web资源的内容,包括以下属性:

id: 定义一个代表Web资源的变量

name: 指定Web资源的路径

input: 如果没有设置input属性,则id属性定义的变量为字符串

类型;如果给input设置了值(可以是任意字符串),则id

属性定义的变量为InputStream类型。

例如: <bean:resource id="resource" name="/testpage1.jsp"/>

resource变量代表"/testpage1.jsp"资源,由于没有设置input

属性,因此resource变量为字符串类型,它的值为testpage1.jsp

的源文件内容。


   c) <bean:struts>

用于检索Struts框架内在的对象,如ActionFormBean、ActionForward和

ActionMapping。包括以下属性:

id: 定义一个page范围内的变量,用来引用Struts框架内的对象。

formbean: 指定ActionFormBean对象,和Struts配置文件中的

<form-bean>元素匹配。

forward: 指定ActionForward对象,和Struts配置文件中的

<global-forwards>元素的<forward>子元素匹配。

mapping: 指定ActionMapping对象,和Struts配置文件中的

<action>元素匹配。

注意: 属性id必须和下面三个属性中的一个匹配

例如: <bean:struts id="forward" forward="BeanResources"/>

<bean:write name="forward" property="path"/>

以上代码的用属性id定义了一个"forward"变量,它引用

一个名为"BeanResources"的ActionForward对象,在Struts

文件中,与之匹配的<forward>元素为:

<global-forward>

<forward name="BeanResources" path="/BeanResources.jsp"/>

...

</global-forward>

<bean:write>标签输出ActionForward对象的path属性值


   d) <bean:include>

和标准的JSP标签<jsp:include>很相似,都可以用来包含其他Web资源

的内容,区别在于<bean:include>标签把其它Web资源的内容存放在一

个变量中,而不是直接显示在页面上。包括以下属性:

id: 定义一个代表其它Web资源的位置

forward: 指定全局转发的路径,和Struts配置文件中的

<global-forward>元素中的<forward>子元素匹配。

page: 指定相对于当前应用的URL,以"/"开头。

href: 指定完整的URL

例如: <bean:include id="p1" page="/page.jsp"/>

<bean:include id="p2" forward="success"/>

<bean:write name="p1" filter="false"/>

<bean:write name="p2" filter="false"/>


3) 用于定义或者输出JavaBean的Bean标签

   a) <bean:define>

   用于定义一个变量,属性id指定变量存放在scope中的key,toScope属性指定这个

   变量存放的范围,如果没有设置toScope属性,则这个变量存放在page

   范围内。给id属性定义的变量赋值有三种方式:

a1) 设置value属性 例如:

<bean:define id="age" value="25"/>


a2) 同时设置name和property属性。name属性指定一个已经存在的

Bean,property指定已经存在的Bean的某个属性,id作为key或者变量。

例如:

<% request.setAttribute("sessionBean",session); %>

<bean:define id="contextBean" name="sessionBean"

property="servletContext"/>

ServletContext Name:

<bean:write name="contextBean"

property="servletContextName"/>

contextBean属于ServletContext类型


a3) 同时设置name和type属性。name属性指定已经存在的JavaBean

,type属性指定这个JavaBean的完整的类名。id作为key或者变量。例如:

<bean:define id="loginForm_copy" name="loginForm"

type="com.briup.web.LoginForm"/>

<bean:write name="loginForm_copy" property="username"/>

该标签会依次在page、request、session和application范围

中根据key(loginForm)来查找LoginForm的对象,也可以通过

属性scope来指定一个查找的范围。

注意: 属性id定义的变量也是LoginForm的对象变量(对象引用)。


   b) <bean:write>

用于在页面上输出某个Bean或者其属性的内容。

例如: <bean:write id="length" name="list"/>

<bean:write name="student" property="xh"/>

<bean:write format="#.####" name="employee"

property="salary"/>

<bean:write format="MM-dd-yyyyy hh:mm:ss"

name="now" property="time"/>

注意: 该标签自动会从page、request、session和application

范围中根据name指定的key去查找对应的对象,也可以用

scope属性来限定某个范围。

另外,属性filter: true表示将html中的标记作为普通字符显示

false表示不会把html中的标记作为普通字符显示,默认为true。


   c) <bean:size>

用于获得Map、Collection或者数组的长度。包括以下属性:

id: 定义一个Integer类型的变量

name: 指定已经存在的Map、Collection或者数组变量

例如: <bean:size id="length" name="list"/>

<bean:write name="length"/>


2、HTML标签库

该标签库可以和标准的HTML标记完成相同的功能,主要分为以下几类:

   1) 用于生成基本的HTML的标签

a) <html:html>

用于在页面的开头生成HTML的<html>元素,该标签有一个属性

lang来显示用户显示的语言。

例如: <html:html lang="true"/>

如果用户的浏览器使用中文,那么该代码在运行时被解析为

<html lang="zh-CN">


b) <html:base>

用于在页面的<head>部分生成<base>元素,用于生成当前页面

的绝对URL路径。

例如: <html:base="http://localhost:8080/jsp"/>

那么使用该base的页面已经将URL定位到应用程序jsp

的根目录下面,要从该页面再去访问其它资源,只要

使用相对路径即可。

c) <html:link>

用于生成HTML的<a>元素,包括以下的属性:

forward: 指定全局的转发链接,对应于Struts配置文件中

的<global-forwards>元素

href: 指定完整的URL链接

page: 指定相对于当前应用的URL

例如:

c1) <html:link forward="index">

Link to Global ActionForward

</html:link>

index对应于struts-config.xml中:

全局: <forward name="index" path="index.jsp">


上述标签会自动生成HTML代码:

<a href="/app/index.jsp">

Link to Global ActionForward

</a>


c2) <html:link href="http://localhost:8080/app/index.jsp">

Generate an "href" link

</html>

生成的HTML代码如下:

<a href="http://localhost:8080/app/index.jsp">

Generate an "href" link

</a>


c3) <html:link page="/login.do">

A relative link

</html:link>

生成的HTML代码如下:

<a href="/app/login.do">

Generate an "href" link

</a>

使用该标签的优点:

b1) 应许再URL中以多种方式包含请求参数

b2) 在当前浏览器关闭Cookie时,会自动重写URL,把

jsessionid作为请求参数包含在URL中,用于跟踪

用户的状态(除了href属性)。


d) <html:img>

用于在HTML中嵌入图片

例如:

d1) <html:img page="/girl.gif"/>

生成HTML代码如下:

<img src="/app/girl.gif"/>

d2) <html:img src="/app/girl.gif"

paramId="orderid" paramName="3"/>

生成HTML代码如下:

<img src="/app/girl.gif?orderid=3"/>


   2) 用于生成HTML表单的标签

a) <html:form>

生成HTML<form>元素

例如: <html:form action="/login">

生成的HTML代码如下:

<form name="loginForm" method="POST"

action="/app/login.do">

对应于struts-config.xml中部分代码:

<action path="/login"

type="com.briup.web.action.LoginAction"

name="loginForm"

scope="request"

input="/login.jsp"

validate="true">

<forward name="success" path="/member_activity.jsp"/>

</action>


b) <html:text>

生成HTML<input type="text">元素

例如: <html:text property="age"/>

property属性指定的字段和ActionForm中的属性匹配

生成HTML代码如下:

<input type="text" name="age"

value="ActionForm中属性age的值"/>


c) <html:hidden>

生成HTML<input type="hidden">元素

例如: <html:hidden property="age"/>

生成HTML代码如下:

<input type="hidden" name="age" value="同上"/>


d) <html:submit>

生成HTML<input type="submit">元素

例如: <html:submit>提交</html:submit>

生成HTML代码如下:

<input type="submit" name="submit" value="提交"/>


e) <html:cancel>

在表单上生成取消按钮

例如: <html:cancel>Cancel</html:cancel>

生成HTML代码如下:

<input type="submit"

name="org.apache.struts.taglib.html.CANCEL"

value="Cancel"/>

注意: 在Action类中,应该以编程的方式来处理取消事件。


f) <html:reset>

生成HTML<input type="reset">元素

例如: <html:reset>重置</html:reset>

生成HTML代码如下:

<input type="reset" name="reset" value="重置"/>


g) <html:checkbox> 生成HTML<input type="checkbox">元素


h) <html:multibox> 在表单上生成复选框元素


i) <html:radio> 生成HTML<input type="radio">元素


j) <html:select> 生成HTML<select>元素


k) <html:option> 生成HTML<option>元素


l) <html:options> 生成一组HTML<option>元素


m) <html:optionsCollection> 生成一组HTML<option>元素


n) <html:file> 实现将本地文件上传到服务器端


<html:form action="sendFile.do" method="POST"

enctype="multipart/form-data">

<html:file property="file"/>

</html:form>


使用注意: n1) <html:file>必须嵌套在<html:form>中

n2) <html:form>标签的method属性必须为"POST"

n3) <html:form>标签的编码类型enctype必须设置

为"multipart/form-data"

n4) <html:file>标签必须设置property属性,这个

属性和ActionForm中FormFile类型的属性对应。


在ActionForm中必须配置:

private FormFile file;

public FormFile getFile(){return file;}

public void setFile(FormFile file){this.file = file;}


在Action中的处理:

FormFile file = registerForm.getFile();

//获得上传文件的名字

String fname = file.getFileName();

//从file中获得输入流

InputStream is = file.getInputStream();

//构造一个输出流,并指定上传文件在服务器端存放路径

OutputStream os = new FileOutputStream(dir + "/" + fname);

//从is中读取字节流后写入到os中


注意: 上述标签要使用在<html:form>标签中,但是在<html:form>标签中也可以使用标准的

html标记(如:<input type="text"/>等)。


   3) 显示错误或者正常消息的标签

a) <html:errors>

该标签在request和session范围内查找ActionMessages或者

子类ActionErrors的对象,再从中读取ActionMessage对象,

把ActionMessage对象中封装的的错误消息显示在页面上。

该标签处理类获取ActionMessages对象的代码如下:

ActionMessages errors =

TagUtils.getInstance().getActionMessages(pageContext,name);

参数name指定ActionMessages对象存放在request和session

范围中的key,默认值为Globals.ERROR_KEY。


在ActionForm和Action中都可以生成ActionMessages对象,在

ActionForm中的validate()验证方法返回ActionErrors对象,Struts的

控制组件RequestProcessor把ActionErrors对象存放在request范围内,

存放时的key为Globals.ERROR_KEY

(如: request.setAttribute(Globals.ERROR_KEY,errors))。


<html:errors>标签中包括的属性:

name: 指定ActionMessages对象存放在request或者session范围

中的key,默认值为Globals.ERROR_KEY。

property: 指定显示消息的属性,若没有设置,将显示ActionMessages

对象中所有的ActionMessage。

bundle: 指定资源配置文件,如果没有设置此项,将从Web应用

默认的资源配置文件中获得消息。

语法: errors.add(消息属性,消息);

如: errors.add(ActionMessages.GLOBAL_MESSAGE,

new ActionMessage("error.error1"));

errors.add(ActionMessages.GLOBAL_MESSAGE,

new ActionMessage("error.error2"));

saveErrors(request,errors);

注意: 同一个消息属性可以对应多条消息


使用<html:errors>的三种方法:

a1) 显示全局消息

全局消息指的是不和特定表单字段关联的消息,消息属性为

ActionMessages.GLOBAL_MESSAGE。设置方式:

errors.add(ActionMessages.GLOBAL_MESSAGE,

new ActionMessage("error.global"));

ActionMessages.GLOBAL_MESSAGE是一个常量,它的值为

org.apache.struts.action.GLOBAL_MESSAGE,代表全局消息。

在页面中显示该消息的方式:

<html:errors property="org.apache.struts.action.GLOBAL_MESSAGE"/>


2) 显示所有的消息

如果在<html:errors/>标签中没有设置property属性,将显示

ActionMessages对象中所有的消息。页面中显示消息方式:

<html:errors bundle="special"/>

指定了特定的资源配置文件,在struts-config.xml文件中

配置为:<message-resources parameter="SpecialErrors"

key="special"/>


3) 显示和特定表单字段关联的消息

errros.add("name",new ActionMessage("error.name"));

页面中显示消息方式:

<html:errors property="name" bundle="special"/>


b) <html:messages>

和<html:errors>相似,也在页面上来显示消息,

使用例子:

<html:messages id="message" name="key" message="true">

<bean:write name="message"/>

</html:messages>

该标签包括以下属性:

name: 指定ActionMessages对象存放在request或者session中

的key。标签处理类将根据这一属性key来检索request

或者session范围的ActionMessages对象。

message: 指定消息的来源。如果为true,则从request或者

session范围内检索出属性key为Globals.MESSAGE_KEY

的ActionMessages对象,此时属性name无效;如果

为false,则根据属性name来检索ActionMessages对象,

如果此时没有设置name属性,将采用默认值Globals.ERROR_KEY。

message属性的默认值为false。

id: 用来命名从消息集合中检索出的每个ActionMessage对象,

它和<bean:write>标签的name属性匹配。在上述例子中,

<html:messages>标签的处理类每次从消息集合中取出一个

ActionMessage对象,并通过id把它命名为"message",

<bean:write>标签接着把这个名为"message"的ActionMessage

对象的消息输出到页面上。


ActionMessages messages = new ActionMessages();

messages.add(ActionMessages.GLOBAL_MESSAGE,

new ActionMessage("error.error1"));

saveMessages(request,messages);

protected void saveMessages(HttpServletRequest request,

ActionMessages messages){

...

request.setAttribute

(Globals.MESSAGE_KEY,messages);

}


3、Logic标签库

该标签库中的标签可以根据特定的逻辑条件来控制输出页面的内容,或者

   循环遍历集合中所有的元素。Logic标签库中的标签分为以下几类:

1) 进行比较运算的Logic标签

a) <logic:equal> 比较变量是否等于指定的常量

例如:

a1) <% request.setAttribute("number",new Integer(100));%>

<logic:equal name="number" value="100">

The value of number is 100

</logic:equal>


a2) <%

Student student = new Student();

stu.setName("jack");

request.setAttribute("student",student);

%>

<logic:equal name="student" property="name"

value="jack">

The name of student is jack

</logic:equal>


b) <logic:notEqual> 比较变量是否不等于指定的常量

c) <logic:greaterEqual> 比较变量是否大于或者等于指定的常量

d) <logic:greaterThan> 比较变量是否大于指定的常量

e) <logic:lessEqual> 比较变量是否小于或者等于指定的常量

f) <logic:lessThan> 比较变量是否小于指定的常量


2) 进行字符串匹配的Logic标签

a) <logic:match> 判断变量中是否包含指定的常量字符串

例如:

<% request.setAttribute("username","jackWang")%>

<logic:match name="username" scope="request"

value="jack">

match is right!

</logic:match>


b) <logic:notMatch> 判断变量中是否不包含指定的常量字符串


3) 判断指定内容是否存在的Logic标签

a) <logic:empty> 判断指定的变量是否为null或者为""。

例如: <%

request.setAttribute("emptyString","");

或者

request.setAttribute("emptyString",null);

%>

<logic:empty name="emptyString">

The vlaue of emptyString is empty

</logic:empty>


b) <logic:notEmpty> 判断指定的变量是否不为null或者不是""。

c) <logic:present> 判断指定的安全角色、用户、Cookie、HTTP

请求Header或者JavaBean是否存在。

d) <logic:notPresent> 判断指定的安全角色、用户、Cookie、HTTP

请求Header或者JavaBean是否不存在。

e) <logic:messagesPresent> 判断指定的消息是否存在

f) <logic:messagesNotPresent> 判断指定的消息是否不存在


4) 进行循环遍历的Logic标签

<logic:iterate>是Logic标签库中最复杂的标签,也是用途最广

的一个标签,它能够在一个循环中遍历数组、Collection、Enumeration

Iterator或者Map中的所有元素。

a) 遍历数组

<%

String[] colors =

new String[]{"red","yellow","green"};

List list = new ArrayList();

list.add("a");

list.add("b")

Map map = new HashMap();

map.put("1","a");

map.put("2","b");

request.setAttribute("colors",colors);

request.setAttribute("list",list);

request.setAttribute("map",map);

%>

<logic:iterate id="color" name="colors">

<bean:write name="color"/>

</logic:iterate>


b) 遍历Collection

<logic:iterate id="element" name="list" scope="page|request|session|applicatoin">

<bean:write name="element"/>

</logic:iterate>


c) 遍历Map

<logic:iterate id="entry" indexId="index"

name="map" scope="page|request|session|applicatoin">

<bean:write name="entry" property="key"/>

<bean:write name="entry" property="value"/>

</logic:iterate>

属性scope省去不写,默认从page、request、session和application查找



5) 进行请求转发或者重定向的Logic标签

a) <logic:forward> 进行请求转发

例如: <logic:forward name="index"/>

属性name指定的值为请求转发的全局目标资源,与Struts配置

文件中的<global-forward>元素中的<forward>子元素匹配。

<global-forwards>

<forward name="index" path="/index.jsp"/>

...

</global-forwards>


b) <logic:redirect> 进行请求重定向

它包括forward、href和page三个属性,这三个属性的使用

方法和<html:link>标签中forward、href和page属性的用法很相似。

例如: <logic:redirect href="http://localhost:8080/app/index.jsp"/>

 

分享到:
评论

相关推荐

    Struts1标签库

    Struts1标签库是Java Web开发中的一种工具,主要用于简化基于MVC模式的Struts框架下的JSP页面开发。尽管目前Struts1已逐渐被更新的版本如Struts2取代,但了解其标签库仍然有助于理解Web应用的历史发展和基础概念。 ...

    struts1标签库详解

    Struts1 标签库详解 Struts1 标签库是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:...

    struts1标签库运用总结

    Struts1是一个经典的Java Web开发框架,其核心之一就是丰富的标签库,它简化了开发者在JSP页面上的工作。在本文中,我们将深入探讨Struts1的四个主要标签库:bean、logic、html和tiles,并重点讲解每个库中的关键...

    struts1标签库详解.doc

    Struts1标签库是Java Web开发中用于构建MVC架构的Apache Struts框架的重要组成部分,它提供了一系列方便的标签,帮助开发者简化视图层的实现。这篇文档详细介绍了Struts1标签库的主要内容,旨在帮助初学者快速掌握...

    struts1标签库知识

    ### Struts1 标签库知识点详解 #### 一、Struts1 标签库概述 Struts1 标签库是Struts框架的核心组成部分之一,它为开发者提供了丰富的标签来简化前端页面与后端逻辑之间的交互过程。通过使用这些标签,开发人员...

    struts1标签库详解借鉴.pdf

    Struts1标签库是用于构建Java Web应用程序的强大工具,它为开发者提供了丰富的标签,简化了视图层的开发。在本文档中,我们将详细探讨Bean Tags、HTML Tags和Logic Tags这三个核心标签库。 1. Bean Tags: Bean ...

    struts2标签库例子

    Struts2 标签库详解 Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来...

    struts2标签库struts2标签库struts2标签库

    "Struts2标签库详解" Struts2标签库是Struts2框架中的一个重要组件,它提供了一系列的标签,帮助开发者快速构建Web应用程序。在Struts2标签库中,标签可以分为UI标签和非UI标签两大类。UI标签用于生成HTML控件,如...

    struts1标签及实例

    Struts1标签库是其核心特性之一,它提供了一系列预定义的JSP标签,使得开发者可以更加方便地在视图层构建动态页面,减少对Java脚本的依赖,提高代码的可读性和可维护性。 1. **Struts1标签库概述** Struts1标签库...

    Struts标签库查询手册

    1. **Struts标签库概述** - Struts标签库是Apache Struts框架的一部分,旨在减少JSP页面中的Java脚本,提高可维护性和可读性。 - 它提供了一系列与控制器逻辑交互的预定义标签,如显示数据、处理表单、链接动作等...

    Struts标签库 Struts 标签库

    1. **Struts2标签库介绍** Struts2框架中的标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列与动作、结果、表单和国际化相关的标签。这些标签能够帮助开发者在页面上轻松地展现数据、处理表单提交、实现...

    Struts1.x HTML标签库

    Struts1.x HTML标签库是Java Web开发框架Struts1.x中的一个重要组成部分,它提供了一系列预定义的JSP标签,方便开发者创建与HTML表单交互的动态页面。这些标签简化了传统的HTML元素,并且与Struts框架紧密集成,使得...

    Struts 2标签库

    有关、相关、类似这样的Struts 2标签库的详细介绍。

    自己做的struts1.2标签库查询手册(例子和代码同步)

    自己做的struts1.2标签库查询手册(例子和代码同步),以前在网上搜索很多这样的查询手册,觉得很不好用,自己做了一个

Global site tag (gtag.js) - Google Analytics