a
a标签创建一个HTML超链接,等价于HTML 的<a href=""....
示范代码:
<s:a href="login.action">登陆</s:a>
action
使用action标签 可以允许在JSP页面中直接调用Action。
范例如下:
<s: action name="tag2" executeResult="false" />
actionerror
这个标签负责输出错误信息到客户端。
示范代码:
Action代码如下:
public String execute()
{
addActionError("第一条错误消息!");
addActionError("第二条错误消息!");
return SUCCESS;
}....
JSP中:<s:actionerror/>
actionmessage
这个标签负责输出提示信息到客户端,例子如下:
Action代码如下:
public String execute()
{
addActionMessage("第一条普通消息!");
addActionMessage("第二条普通消息!");
return SUCCESS;
}
JSP:<s:actionmessage />
append
用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
例子:
<s:append id="myAppendIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
<s:property />
</s:iterator>
bean
bean标签 用于创建一个JavaBean的实例。
示范样例:
<s:bean name="lee.Person" id=“p”>
<!--使用Param标签为lee。Person类的实例传入参数-->
<s:param name="name" value="'yeeku'"/>
<s:param name="age" value="29"/>
</s:bean>
checkbox
checkbox标签输出一个HTML复选框,等价于HTML代码:<input type="checkbox" .../>。
示范代码:
<s:checkbox label="性别" name="user.sex" value="true" fieldValue="dddd"/>
checkboxlist
标签输出一个复选框。
示范代码:
<s:form>
<s:checkboxlist name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/>
</s:form>
combobox
combobox标签生成一个单行文本框和下拉列表框的结合。
示范代码:
<s:combobox label="请选择您喜欢的图书" theme="css_xhtml" labelposition="top"
list="{'Spring2.0' , 'J2EE' , 'Ajax'}"
size="20" maxlength="20" name="book"/>
conponent
conponent标签用于使用自定义标签。因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性:
theme:自定义组件所使用的主题,默认使用xhtml主题。
templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。
template:指定自定义组件所使用的模板。
示范代码:
<s:component template="mytemplate.jsp">
<s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" />
</s:component>
date
date标签 用于格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。
示范代码:
<s:date name="#attr.now" format="dd/MM/yyyy" nice=“true”/>
datetimepicker
datetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在<head></head>内加一个"<s:head theme="ajax" />",然后可以在form内加上该标签。
示范代码:
<s:datetimepicker name="user.birthday" label="出生日期" value="%{'2008-9-20'}"/>
debug
debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context 中的所有值信息。
使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。
在页面上增加<s:debug/>标签,通过debug标签,可以看的系统中ValueStack离得全部信息,并可以看到Stack Context中的属性。
<s:debug></s:debug>
//直接在jsp页面上面添加这样的标签,就可以生产一个查看debug信息的链接
示范代码:
div
div是struts2 ajax中最基础的标签,其他的标签均和div有关系。div的最大的用途就是可以异步的更新div中的内容。这里写一些div基本的应用,其他的等写别的标签的时候再写。
示范代码:
<s:div href="%{url}">Initial Content</sx:div>
<!--最简单的例子,从指定的url获取信息更新自己的内容-->
doubleselect
doubleselect标签输出关联的两个HTML列表框,产生联动效果。
<s:doubleselect
label="请选择所在省市" name="province" list="provinces" listKey="id"
listValue="name" doubleList="cities"
doubleListKey="id" doubleListValue="name"
doubleName="city" headerKey="-1"
headerValue="--- 请选择 ---"
emptyOption="true" />
else
else标签用来控制基本的条件处理流程,通常和if、elseif标签连用。
例子
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>
elseif
elseif标签用来控制基本的条件处理流程,通常和if标签连用。
例子
<s:if test="%{false}">
...</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
...</s:else>
fielderror
fielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个map类型的属性。
示范代码:
<s:fielderror/>
file
file标签输出一个HTML文件选择框,等价于html代码:<input type="file" .../>。
示范代码:
<s:file name="uploadfile" accept="text/*" />
<s:file name="uploadfile" accept="text/html,text/plain" />
form
form标签输出一个HTML from
例子:
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data">
<s:submit />
<s:reset />
</s:form>
可以上传文件的form。
generator
使用generator标签可以将指定字符串按指定分隔符分成多个子串,临时生成的多个子串可以使用iterator标签来迭代输出。可以这样理解:generator将一个字符串转化成一个集合。在该标签的标签体内,整个临时生成的集合将位于ValueStack的顶端,蛋一旦该标签结束,该集合将被移出ValueStack。
更多 generator 信息
head
head标签主要用于成生HTML主要页面的HEAD部分。国为有些主题需要包含特定的CSS和javascript代码,而该标签则用于生成对这此CSS和javaScript代码的引用。
示范代码:
<head>
<title>page 1</title>
<s:head/>
</head>
hidden
hidden标签输出一个HTML隐藏表单元素,等价于HTML代码:<input type="hidden" .../>。
在xhtml主题下,hidden标签与其他的标签不一样,hidden标签并不输出表行。xhtml主题直接从simple主题继承了
hidden.ftl模板。
示范代码:
<s:hidden name="id" value="s"/>
i18n
该标签用于加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。
示范代码:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
if
If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。
例子:
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
include
include标签 用于将一个JSP页面,或者一个Servlet包含到本页面中。
示范代码:
<h2>使用s:include标签来包含目标页面</h2>
<s:include value="include-file.jsp"/>
<!--使用include标签来包含其他页面,并且传入参数-->
<s:include value="include-file.jsp">
<s:param name="author" value="'yeeku'" />
</s:include>
inputtransferselect
获取form的一个输入
更多 inputtransferselect 信息
iterator
迭代处理一个java.util.Connection或者java.util.Iterator对象
例子:
<s:iterator value="users" status="userStatus">
<s:property value="fullName" />
<s:if test="!#userStatus.last">,</s:if>
</s:iterator>
label
xhtml主题下的label 标签输出两个 HTML的label标签(simple主题下的label标签只输出一个HTML label标签)。分别位于一行的两列,左列的label标签器提示作用,右列的label标签用于显示只读的action属性数据。
示范代码:
<s:label label="用户名" name="user.username"/>
merge
合并遍历集合出来的值,与<s:append>标签用法相似。
例子:
<s:merge id="list">
<s:param value="#request.list1"/>
<s:param value="#request.list2"/>
<s:param value="#request.list3"/>
<s:param value="#request.list4"/>
</s:merge>
<s:iterator value="%{list}">
<s:property/><br>
</s:iterator>
optgroup
optgroup标签用于生成一个下拉列表框的选项组,因此,该标签必须放在<s:select>标签中使用,一个下拉列表框中可以包含多个选项组,因此可以在一个<s:select>标签中使用多个<s:optgroup>标签。
<s:select label="选择您喜欢的图书" name="book" list="#{'Spring2.0':'李刚','J2EE':'李','Ajax宝典':'李'}"
listKey="value" listValue="key">
<s:optgroup label="Rod Johnson"
list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}"
listKey="value"
listValue="key"/>
<s:optgroup label="David Flanagan"
list="#{'JavaScript: The Definitive Guide':'David'}"
listKey="value"
listValue="key"/>
</s:select>
optiontransferselect
optiontransferselect标签创建一个选项转移列表组建,它由两个<select>标签以及它们之间的用于将选项在两个<select>之间相互移动的按钮组成。表单提交时,将提交两个列表框中选中的选项。
示范代码:
<s:optiontransferselect
label="最喜爱的图书"
name="javaBook"
list="{'《Java Web开发详解》', '《Struts 2深入详解》', '《Java快速入门》'}"
doubleName="cBook"
doubleList="{'《VC++深入详解》', '《C++ Primer》', '《C++程序设计语言》'}"/>
param
param标签 主要用于为其他标签提供参数
用法:
<param name="color" value="blue" />
这里color参数的值是,blue对象的值----如果blue对象不存在,则color为null。
password
<s:password>标签类同于HTML的<input type=”password” …>,其name和label类同于<s:textfield>
例子:
<s:password name="password" label="密码"/>
property
property标签用于输出值栈中的对象的属性值,使用value属性来指定要输出的对象属性,如果没有指定value属性,那么默认输出栈顶对象。
例子:
<s:property value="username" default="游客"/>
取出栈顶对象(通常是action)的username 属性并输出,如果没有找到username属性,那么输出“游客”。
push
push标签用于将某个值放到ValueStack的栈顶,可以跟简单的访问该值。
示范样例:
<s:bean name="lee.Person" id="p">
<s:param name="age" value="29"/>
</s:bean>
<s:push value="#p">
<s:property value="name"/>
<s:propery value="age"/>
</s:push>
radio
radio标签的用法与checkboxlist的用法几乎完全相同,一样可以指定label, list, listKey, listValue等属性。
示范代码:
<s:radio name="c" label="请选择您喜欢的图书" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
reset
reset标签输出一个重置按钮。
示范代码:
<s:reset value="重置"></s:reset>
<s:reset type="button" label="重置"></s:reset>
select
s:select 标签输出一个下拉列表框,相当于HTML代码中的<select/>
示范代码:
<s:form>
<s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"/>
</s:form>
set
set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内。
使用示范:
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
sort
对一个可以迭代的对象进行排序操作。
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<!-- do something with each sorted elements -->
<s:property value="..." />
</s:iterator>
</s:sort>
submit
Submit标签输出一个按钮,submit标签和form标签使用可以提供异步表单提交功能。Submit标签可以输出以下三种类型的提交按钮:
Input: 等价于 HTML代码<input type=”submit”>
Image: 等价于 HTML代码 <input type="image">
Button:<button type="submit"></button>
示范代码:
<s:submit value="登陆"></s:submit>
subset
递归iterator的一部分。
例子:
<s:subset source="myList">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
tabbedPanel
<s:tabbedPanel>标签,用来在HTML页面中生成类似于Windows程序的Tab页,从而可以在有限的空间中放置更多的内容。tabbedPanel标签生成的Tab页的内容可以是静态的,也可以是动态的。
示范代码:
<s:tabbedPanel id="tp1" closeButton="pane" theme="ajax" doLayout="true" selectedTab="second" labelposition="left">
<s:div id="first" label="第一个div" theme="ajax">
静态的DIV
</s:div>
<s:div name="second" label="第二个div" theme="ajax" href="%{T}" updateFreq="6000" delay="3000">
3:每六秒钟刷新一次,但有三秒延迟
</s:div>
</s:tabbedPanel>
text
用于输出国际化消息,和i18n结合使用。
示范代码:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
textarea
Textarea标签输出一个HTML多行文本输入控件,等价于HTML代码:<textarea />
示范代码:
<s:textarea name="personal" cols="10" rows="5" label="个人简历"></s:textarea>
更多 textarea 信息
textfield
Textfield标签输出一个HTML单行文本输入控件,等价于HTML代码<input type="text">
示范代码:
<s:form action="register" method="post">
<s:textfield name="username" label="用户名"></s:textfield>
</s:form>
token
token标签是用于防止多次提交的标签。避免了刷新页面时多次提交,如果需要该标签起作用,则应该在Struts2的配置文件中启用TokenInterceptor拦截器或TokenSessionStoreInterceptor拦截器。
示范代码:
<s:form>
<s:token/>
</s:form>
tree
tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。
示范代码:
<s:tree label="图书" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
treenode
tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。
示范代码:
<s:tree label="图书" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
updownselect
updownselect标签创建一个带有上下移动的按钮的列表框,可以通过上下移动按钮来调整列表框的选项的位置。
示范代码:
<s:updownselect name="a" label="请选择您喜欢的图书" labelposition="top"
moveUpLabel="向上移动"
list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The Definitive Guide'}"/>
url
url标签 用于生成一个URL地址,可以通过param向url标签指定参数,从而指定URL发送请求参数。
示范代码:
指定action属性,且使用param传入参数的形式
<s:url action="showbook">
<s:param name="author" value="'yeeku'">
</s:url>
摘自:http://www.iteye.com/topic/722042
a标签创建一个HTML超链接,等价于HTML 的<a href=""....
示范代码:
<s:a href="login.action">登陆</s:a>
action
使用action标签 可以允许在JSP页面中直接调用Action。
范例如下:
<s: action name="tag2" executeResult="false" />
actionerror
这个标签负责输出错误信息到客户端。
示范代码:
Action代码如下:
public String execute()
{
addActionError("第一条错误消息!");
addActionError("第二条错误消息!");
return SUCCESS;
}....
JSP中:<s:actionerror/>
actionmessage
这个标签负责输出提示信息到客户端,例子如下:
Action代码如下:
public String execute()
{
addActionMessage("第一条普通消息!");
addActionMessage("第二条普通消息!");
return SUCCESS;
}
JSP:<s:actionmessage />
append
用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
例子:
<s:append id="myAppendIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
<s:property />
</s:iterator>
bean
bean标签 用于创建一个JavaBean的实例。
示范样例:
<s:bean name="lee.Person" id=“p”>
<!--使用Param标签为lee。Person类的实例传入参数-->
<s:param name="name" value="'yeeku'"/>
<s:param name="age" value="29"/>
</s:bean>
checkbox
checkbox标签输出一个HTML复选框,等价于HTML代码:<input type="checkbox" .../>。
示范代码:
<s:checkbox label="性别" name="user.sex" value="true" fieldValue="dddd"/>
checkboxlist
标签输出一个复选框。
示范代码:
<s:form>
<s:checkboxlist name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/>
</s:form>
combobox
combobox标签生成一个单行文本框和下拉列表框的结合。
示范代码:
<s:combobox label="请选择您喜欢的图书" theme="css_xhtml" labelposition="top"
list="{'Spring2.0' , 'J2EE' , 'Ajax'}"
size="20" maxlength="20" name="book"/>
conponent
conponent标签用于使用自定义标签。因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性:
theme:自定义组件所使用的主题,默认使用xhtml主题。
templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。
template:指定自定义组件所使用的模板。
示范代码:
<s:component template="mytemplate.jsp">
<s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" />
</s:component>
date
date标签 用于格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。
示范代码:
<s:date name="#attr.now" format="dd/MM/yyyy" nice=“true”/>
datetimepicker
datetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在<head></head>内加一个"<s:head theme="ajax" />",然后可以在form内加上该标签。
示范代码:
<s:datetimepicker name="user.birthday" label="出生日期" value="%{'2008-9-20'}"/>
debug
debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context 中的所有值信息。
使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。
在页面上增加<s:debug/>标签,通过debug标签,可以看的系统中ValueStack离得全部信息,并可以看到Stack Context中的属性。
<s:debug></s:debug>
//直接在jsp页面上面添加这样的标签,就可以生产一个查看debug信息的链接
示范代码:
div
div是struts2 ajax中最基础的标签,其他的标签均和div有关系。div的最大的用途就是可以异步的更新div中的内容。这里写一些div基本的应用,其他的等写别的标签的时候再写。
示范代码:
<s:div href="%{url}">Initial Content</sx:div>
<!--最简单的例子,从指定的url获取信息更新自己的内容-->
doubleselect
doubleselect标签输出关联的两个HTML列表框,产生联动效果。
<s:doubleselect
label="请选择所在省市" name="province" list="provinces" listKey="id"
listValue="name" doubleList="cities"
doubleListKey="id" doubleListValue="name"
doubleName="city" headerKey="-1"
headerValue="--- 请选择 ---"
emptyOption="true" />
else
else标签用来控制基本的条件处理流程,通常和if、elseif标签连用。
例子
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>
elseif
elseif标签用来控制基本的条件处理流程,通常和if标签连用。
例子
<s:if test="%{false}">
...</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
...</s:else>
fielderror
fielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个map类型的属性。
示范代码:
<s:fielderror/>
file
file标签输出一个HTML文件选择框,等价于html代码:<input type="file" .../>。
示范代码:
<s:file name="uploadfile" accept="text/*" />
<s:file name="uploadfile" accept="text/html,text/plain" />
form
form标签输出一个HTML from
例子:
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data">
<s:submit />
<s:reset />
</s:form>
可以上传文件的form。
generator
使用generator标签可以将指定字符串按指定分隔符分成多个子串,临时生成的多个子串可以使用iterator标签来迭代输出。可以这样理解:generator将一个字符串转化成一个集合。在该标签的标签体内,整个临时生成的集合将位于ValueStack的顶端,蛋一旦该标签结束,该集合将被移出ValueStack。
更多 generator 信息
head
head标签主要用于成生HTML主要页面的HEAD部分。国为有些主题需要包含特定的CSS和javascript代码,而该标签则用于生成对这此CSS和javaScript代码的引用。
示范代码:
<head>
<title>page 1</title>
<s:head/>
</head>
hidden
hidden标签输出一个HTML隐藏表单元素,等价于HTML代码:<input type="hidden" .../>。
在xhtml主题下,hidden标签与其他的标签不一样,hidden标签并不输出表行。xhtml主题直接从simple主题继承了
hidden.ftl模板。
示范代码:
<s:hidden name="id" value="s"/>
i18n
该标签用于加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。
示范代码:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
if
If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。
例子:
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
include
include标签 用于将一个JSP页面,或者一个Servlet包含到本页面中。
示范代码:
<h2>使用s:include标签来包含目标页面</h2>
<s:include value="include-file.jsp"/>
<!--使用include标签来包含其他页面,并且传入参数-->
<s:include value="include-file.jsp">
<s:param name="author" value="'yeeku'" />
</s:include>
inputtransferselect
获取form的一个输入
更多 inputtransferselect 信息
iterator
迭代处理一个java.util.Connection或者java.util.Iterator对象
例子:
<s:iterator value="users" status="userStatus">
<s:property value="fullName" />
<s:if test="!#userStatus.last">,</s:if>
</s:iterator>
label
xhtml主题下的label 标签输出两个 HTML的label标签(simple主题下的label标签只输出一个HTML label标签)。分别位于一行的两列,左列的label标签器提示作用,右列的label标签用于显示只读的action属性数据。
示范代码:
<s:label label="用户名" name="user.username"/>
merge
合并遍历集合出来的值,与<s:append>标签用法相似。
例子:
<s:merge id="list">
<s:param value="#request.list1"/>
<s:param value="#request.list2"/>
<s:param value="#request.list3"/>
<s:param value="#request.list4"/>
</s:merge>
<s:iterator value="%{list}">
<s:property/><br>
</s:iterator>
optgroup
optgroup标签用于生成一个下拉列表框的选项组,因此,该标签必须放在<s:select>标签中使用,一个下拉列表框中可以包含多个选项组,因此可以在一个<s:select>标签中使用多个<s:optgroup>标签。
<s:select label="选择您喜欢的图书" name="book" list="#{'Spring2.0':'李刚','J2EE':'李','Ajax宝典':'李'}"
listKey="value" listValue="key">
<s:optgroup label="Rod Johnson"
list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}"
listKey="value"
listValue="key"/>
<s:optgroup label="David Flanagan"
list="#{'JavaScript: The Definitive Guide':'David'}"
listKey="value"
listValue="key"/>
</s:select>
optiontransferselect
optiontransferselect标签创建一个选项转移列表组建,它由两个<select>标签以及它们之间的用于将选项在两个<select>之间相互移动的按钮组成。表单提交时,将提交两个列表框中选中的选项。
示范代码:
<s:optiontransferselect
label="最喜爱的图书"
name="javaBook"
list="{'《Java Web开发详解》', '《Struts 2深入详解》', '《Java快速入门》'}"
doubleName="cBook"
doubleList="{'《VC++深入详解》', '《C++ Primer》', '《C++程序设计语言》'}"/>
param
param标签 主要用于为其他标签提供参数
用法:
<param name="color" value="blue" />
这里color参数的值是,blue对象的值----如果blue对象不存在,则color为null。
password
<s:password>标签类同于HTML的<input type=”password” …>,其name和label类同于<s:textfield>
例子:
<s:password name="password" label="密码"/>
property
property标签用于输出值栈中的对象的属性值,使用value属性来指定要输出的对象属性,如果没有指定value属性,那么默认输出栈顶对象。
例子:
<s:property value="username" default="游客"/>
取出栈顶对象(通常是action)的username 属性并输出,如果没有找到username属性,那么输出“游客”。
push
push标签用于将某个值放到ValueStack的栈顶,可以跟简单的访问该值。
示范样例:
<s:bean name="lee.Person" id="p">
<s:param name="age" value="29"/>
</s:bean>
<s:push value="#p">
<s:property value="name"/>
<s:propery value="age"/>
</s:push>
radio
radio标签的用法与checkboxlist的用法几乎完全相同,一样可以指定label, list, listKey, listValue等属性。
示范代码:
<s:radio name="c" label="请选择您喜欢的图书" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
reset
reset标签输出一个重置按钮。
示范代码:
<s:reset value="重置"></s:reset>
<s:reset type="button" label="重置"></s:reset>
select
s:select 标签输出一个下拉列表框,相当于HTML代码中的<select/>
示范代码:
<s:form>
<s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"/>
</s:form>
set
set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内。
使用示范:
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
sort
对一个可以迭代的对象进行排序操作。
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<!-- do something with each sorted elements -->
<s:property value="..." />
</s:iterator>
</s:sort>
submit
Submit标签输出一个按钮,submit标签和form标签使用可以提供异步表单提交功能。Submit标签可以输出以下三种类型的提交按钮:
Input: 等价于 HTML代码<input type=”submit”>
Image: 等价于 HTML代码 <input type="image">
Button:<button type="submit"></button>
示范代码:
<s:submit value="登陆"></s:submit>
subset
递归iterator的一部分。
例子:
<s:subset source="myList">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
tabbedPanel
<s:tabbedPanel>标签,用来在HTML页面中生成类似于Windows程序的Tab页,从而可以在有限的空间中放置更多的内容。tabbedPanel标签生成的Tab页的内容可以是静态的,也可以是动态的。
示范代码:
<s:tabbedPanel id="tp1" closeButton="pane" theme="ajax" doLayout="true" selectedTab="second" labelposition="left">
<s:div id="first" label="第一个div" theme="ajax">
静态的DIV
</s:div>
<s:div name="second" label="第二个div" theme="ajax" href="%{T}" updateFreq="6000" delay="3000">
3:每六秒钟刷新一次,但有三秒延迟
</s:div>
</s:tabbedPanel>
text
用于输出国际化消息,和i18n结合使用。
示范代码:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
textarea
Textarea标签输出一个HTML多行文本输入控件,等价于HTML代码:<textarea />
示范代码:
<s:textarea name="personal" cols="10" rows="5" label="个人简历"></s:textarea>
更多 textarea 信息
textfield
Textfield标签输出一个HTML单行文本输入控件,等价于HTML代码<input type="text">
示范代码:
<s:form action="register" method="post">
<s:textfield name="username" label="用户名"></s:textfield>
</s:form>
token
token标签是用于防止多次提交的标签。避免了刷新页面时多次提交,如果需要该标签起作用,则应该在Struts2的配置文件中启用TokenInterceptor拦截器或TokenSessionStoreInterceptor拦截器。
示范代码:
<s:form>
<s:token/>
</s:form>
tree
tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。
示范代码:
<s:tree label="图书" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
treenode
tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。
示范代码:
<s:tree label="图书" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
updownselect
updownselect标签创建一个带有上下移动的按钮的列表框,可以通过上下移动按钮来调整列表框的选项的位置。
示范代码:
<s:updownselect name="a" label="请选择您喜欢的图书" labelposition="top"
moveUpLabel="向上移动"
list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The Definitive Guide'}"/>
url
url标签 用于生成一个URL地址,可以通过param向url标签指定参数,从而指定URL发送请求参数。
示范代码:
指定action属性,且使用param传入参数的形式
<s:url action="showbook">
<s:param name="author" value="'yeeku'">
</s:url>
摘自:http://www.iteye.com/topic/722042
相关推荐
亲测可用
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
IDE护眼主题套件
内容概要:文章详细介绍了基于Matlab/Simulink构建的增程式电动车仿真模型。该模型由电池、电机、发动机、整车动力学、控制策略和驾驶员模块六大组件构成,重点在于各模块间的能量流动逻辑。文中特别强调了功率跟随控制策略,通过PID闭环控制使发动机功率与电池需求动态匹配,优化了燃油经济性和SOC控制精度。此外,模型采用开放式架构,所有参数通过m脚本集中管理,便于修改和扩展。文章展示了模型在典型工况下的性能表现,并突出了其在科研和工程应用中的灵活性和实用性。; 适合人群:对新能源汽车技术感兴趣的工程师、研究人员以及高校相关专业师生。; 使用场景及目标:①用于研究增程式电动车的能量管理策略;②作为教学案例帮助学生理解复杂系统的建模方法;③为实际工程项目提供可复用的仿真平台。; 阅读建议:读者应重点关注模型的架构设计和关键控制算法实现,同时结合提供的代码片段进行实践操作,以便更好地掌握增程式电动车的工作原理及其优化方法。
51a30-main.zip
内容概要:本文详细介绍了多种类型的数据库索引及其应用场景,包括普通索引、唯一性索引、单个索引、复合索引、聚簇索引、非聚簇索引、主索引、外键索引、全文索引和空间索引。每种索引都有其独特的定义、要点和适用场景,并附有具体的SQL代码示例。此外,文章还对比了InnoDB和MyISAM两种存储引擎的特点,解释了脏读、不可重复读、可重复读和幻读的概念,并讨论了SQL优化的方法以及数据库事务的ACID特性。 适合人群:具备一定数据库基础知识的开发者、数据库管理员以及参与数据库设计和优化的技术人员。 使用场景及目标:①帮助开发者选择合适的索引类型以提高查询效率;②理解不同存储引擎的特点,选择最适合应用场景的存储引擎;③掌握事务隔离级别的概念,避免数据不一致问题;④学习SQL优化技巧,提升数据库性能;⑤理解ACID特性,确保数据库操作的一致性和可靠性。 阅读建议:本文内容较为全面且深入,建议读者结合实际项目需求,重点理解不同类型索引的应用场景,掌握SQL优化的基本原则,并熟悉事务处理的最佳实践。
内容概要:本文详细介绍了MATLAB中优化算法的实现方法,涵盖确定性算法(如梯度下降法)和随机性算法(如遗传算法、粒子群优化)。文章首先讲解了梯度下降法和MATLAB优化工具箱的应用,展示了如何使用fmincon解决约束优化问题。接着,文章深入探讨了线性规划、非线性规划和多目标优化的理论和实践,提供了具体的MATLAB代码示例。此外,文中还介绍了遗传算法、粒子群优化和模拟退火算法的原理及应用,并通过实例展示了这些算法在实际问题中的使用。最后,文章讨论了优化算法在工程、金融和机器学习领域的高级应用,以及调试和优化的常见策略。 适合人群:具备一定编程基础,对优化算法感兴趣的工程师、研究人员和学生。 使用场景及目标:①理解优化算法的基础理论和实现方法;②掌握MATLAB优化工具箱的使用,解决线性、非线性、多目标优化问题;③学习遗传算法、粒子群优化和模拟退火算法的具体应用;④提高优化算法的性能和可靠性,解决实际工程、金融和机器学习问题。 阅读建议:本文内容丰富,涉及多种优化算法及其MATLAB实现,建议读者先掌握基本的优化理论和MATLAB编程基础,再逐步深入学习各类算法的具体应用。在学习过程中,结合提供的代码示例进行实践,并尝试调整参数以优化算法性能。
this is for myself learn coding, change a pc debug.
项目资源包含:可运行源码+sql文件 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Python 框架:django Python版本:python3.8 数据库:mysql 5.7 数据库工具:Navicat 开发软件:PyCharm 浏览器:谷歌浏览器
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文深入探讨了MMC型STATCOM/SVG的核心技术和调试技巧,重点讲解了载波移相调制(CPS-PWM)和电压均衡控制两大关键技术。载波移相调制通过为每个子模块设置不同的载波相位差,有效降低谐波含量并优化开关频率。电压均衡则分为桥臂内、桥臂间和相间三个层次,分别采用动态排序、比例控制和零序电压注入等方法,确保系统稳定运行。文章还分享了多个实战经验,如低压调试、红外热像仪检测以及避免参数设置不当引发的问题。; 适合人群:从事电力电子领域,特别是参与STATCOM/SVG项目的设计、开发和调试的技术人员。; 使用场景及目标:①理解MMC型STATCOM/SVG的工作原理和技术细节;②掌握载波移相调制的具体实现方法;③学习电压均衡控制的各种策略及其应用场景;④获取实际调试过程中常见问题的解决方案。; 阅读建议:本文涉及大量技术细节和实战经验,建议读者结合实际项目进行阅读,重点关注载波移相调制和电压均衡控制的具体实现,并参考提供的代码片段进行实践。
liangmmm_finalll.scdoc
内容概要:本文详细介绍了Solidity语言的核心概念和语法特性,涵盖结构体、函数修改器、事件、类型系统、数组、映射、操作符、合约可见性、构造函数、抽象合约、接口、继承、控制结构、异常处理和keccak256哈希函数等内容。通过这些知识点的讲解,帮助开发者理解如何构建高效、安全的智能合约。; 适合人群:对区块链开发感兴趣,尤其是希望深入了解以太坊智能合约开发的初学者及有一定编程基础的研发人员。; 使用场景及目标:①掌握Solidity语言的基本语法和高级特性,如结构体、函数修改器、事件等;②理解合约的可见性、继承、接口等面向对象编程特性;③学会使用keccak256等安全机制保障智能合约的安全性;④能够运用控制结构和异常处理编写健壮的合约逻辑。; 阅读建议:建议读者从基础语法开始逐步深入,结合实际案例进行练习。尤其要注意合约的安全性和性能优化,避免常见的漏洞和错误。在学习过程中,应多参考官方文档和其他优质资料,不断巩固和拓展知识体系。
原型模式课上代码.zip
内容概要:文章介绍了利用Simulink搭建锂电池组主动均衡系统的原理与实现方法。通过双向DC-DC主动均衡电路和模糊控制算法,解决了储能项目中电池包SOC(荷电状态)差异过大的问题。文中详细解释了关键代码逻辑,包括均衡状态切换、模糊控制器规则配置以及动态子系统使能技术的应用。特别提到当SOC最大差值超过设定阈值时,系统会自动启动均衡,并根据差值大小智能调整均衡电流。仿真结果显示,在处理突发状况(如某电池SOC突然下降)时,该系统能在短时间内恢复平衡。此外,文章还分享了调试过程中的一些实用技巧,如设置合理的均衡电流限值。; 适合人群:从事锂电池管理系统研发的技术人员,尤其是有一定MATLAB/Simulink使用经验的工程师。; 使用场景及目标:①解决储能系统中锂电池组SOC不一致的问题;②优化现有均衡策略,提高均衡效率;③学习如何在Simulink中实现复杂控制算法。; 其他说明:本文不仅提供了详细的代码示例和技术细节,还通过生动的比喻帮助读者更好地理解复杂的控制逻辑。建议读者在实践中结合理论知识进行调试和验证。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。