struts2标签如何实现for循环

struts2标签如何实现for循环,第1张

嵌套<iterator>,然后实现;
具体如下:
<s:iterator value="#requestassetCateSuperList" id="assetCateSuperList">
<s:property value='name'/> -- <s:property value='id'/>"
<s:iterator value="#assetCateSuperListproducts">
(<s:property value="name"/> -- <s:property value="id"/>
</s:iterator>

</s:iterator>

<s:select
list="%{#sessionsub}" //存放在>循环输出List,有二种方法可以实现,参考如下:
第一种:
<s:iterator value="a" status="b">
<s:iterator value="a[#bindex]" status="c">
<s:property value="a[#bindex][#cindex]" />
</s:iterator>
</s:iterator>
第二种:
<s:iterator value="personList" var="a">
<s:property value="#auserName" />
<s:iterator value="pictureList" var="b">
<s:if test="%{#aid == #bid}">
<s:property value="#bpictureName" />
</s:if>
</s:iterator>
</s:iterator>

应该显示出来但不允许被编辑,使用struts2的<s:select标签不具有disabled属性,除非将theme设置为simple才可以使用disabled,那么如果不使用simple的theme还有其他办法使select下拉框只读吗从网上找到了一个办法,大致的思路就是不让下拉框获得焦点,见下面的html代码:<s:select key="DmsDocumentdocZtSpec" name="editEntitydocZtSpec" list="#request['map']docZtSpec" listKey="code" listValue="name" emptyOption="true" /</span

Struts 的基本配置

前面大致了解了Struts 框架的基本内容 但这些基本内容都必须建立在Struts 的配置文件基础之上 这些配置文件的配置信息也是Struts 应用的核心部分

配置Struts web xml文件

任何MVC框架都需要与Web应用整合 这就不得不借助于Struts web xml文件 只有配置在Struts web xml文件中Servlet才会被应用加载

通常 所有的MVC框架都需要Web应用加载一个核心控制器 对于Struts 框架而言 需要加载FilterDispatcher 只要Web应用负责加载FilterDispatcher FilterDispatcher将会加载应用的Struts 框架

因为Struts 将核心控制器设计成Filter 而不是一个普通Servlet 故为了让Web应用加载FilterDispacher 只需要在Struts web xml文件中配置FilterDispatcher即可

配置FilterDispatcher的代码片段如下

< ! 配置Struts 核心Filter的名字 >struts< /FILTER NAME> < FILTER CLASS> apache struts dispatcher FilterDispatcher < /FILTER CLASS>< INIT PARAM>< ! 配置Struts 框架默认加载的Action包结构 >< PARAM NAME>actionPackages< /PARAM NAME>< PARAM VALUE> apache struts showcase person< /PARAM VALUE>< /INIT PARAM>< ! 配置Struts 框架的配置提供者类 >< INIT PARAM>< PARAM NAME>configProviders < /PARAM NAME>< PARAM VALUE>lee MyConfigurationProvider< /PARAM VALUE>< /INIT PARAM>< /FILTER>   

正如上面看到的 当配置Struts 的FilterDispatcher类时 可以指定一系列的初始化参数 为该Filter配置初始化参数时 其中有 个初始化参数有特殊意义

config 该参数的值是一个以英文逗号( )隔开的字符串 每个字符串都是一个XML配置文件的位置 Struts 框架将自动加载该属性指定的系列配置文件

actionPackages 该参数的值也是一个以英文逗号( )隔开的字符串 每个字符串都是一个包空间 Struts 框架将扫描这些包空间下的Action类

configProviders 如果用户需要实现自己的ConfigurationProvider类 用户可以提供一个或多个实现了ConfigurationProvider接口的类 然后将这些类的类名设置成该属性的值 多个类名之间以英文逗号( )隔开

除此之外 还可在此处配置Struts 常量 每个 元素配置一个Struts 常量 其中

子元素指定了常量name 而

子元素指定了常量value

提示   关于Struts 常量的讲解 请参阅本书的 节

在Struts web xml文件中配置了该Filter 还需要配置该Filter拦截的URL 通常 我们让该Filter拦截所有的用户请求 因此使用通配符来配置该Filter拦截的URL

下面是配置该Filter拦截URL的配置片段

< ! 配置Filter拦截的URL >< FILTER MAPPING>< ! 配置Struts 的核心FilterDispatcher拦截所有用户请求 >< FILTER NAME>struts< /FILTER NAME>/< /URL PATTERN>< /FILTER MAPPING>

配置了Struts 的核心FilterDispatcher后 基本完成了Struts 在web xml文件中的配置

如果Web应用使用了Servlet 以前的规范 因为Web应用不会自动加载Struts 框架的标签文件 因此必须在Struts web xml文件中配置加载Struts 标签库

配置加载Struts 标签库的配置片段如下

< ! 配置Struts 标签库的URI >/s< /TAGLIB URI>< ! 指定Struts 标签库定义文件的位置 >< TAGLIB LOCATION>/WEB INF/struts tags tld< /TAGLIB LOCATION>< /TAGLIB>

在上面配置片段中 指定了Struts 标签库配置文件物理位置 /WEB INF/struts tags tld 因此我们必须手动复制Struts 的标签库定义文件 将该文件放置在Web应用的WEB INF路径下

如果Web应用使用Servlet 以上的规范 则无需在Struts web xml文件中配置标签库定义 因为Servlet 规范会自动加载标签库定义文件

提示   Struts 的标签库定义文件包含在struts core jar文件里 在struts core jar文件的META INF路径下 包含了一个struts tag tld文件 这个文件就是Struts 的标签库定义文件 Servlet 规范会自动加载该标签库文件 对于Servlet 以上的规范 Web应用自动加载该标签库定义文件 加载struts tag tld标签库定义文件时 该文件的开始部分包含如下代码片段

< TAGLIB>< ! 定义标签库的版本 >< TLIB VERSION> < /TLIB VERSION>< ! 定义标签库所需的JSP版 >< JSP VERSION> < /JSP VERSION>< SHORT NAME>s< /SHORT NAME> /struts tags< /URI> < /TAGLIB>

lishixinzhi/Article/program/Java/ky/201311/28777

struts2的标签库中,有一个出场频度很高的逻辑标签---if标签
其实很简单,
就两个参数,常用的就一个"test"
但是,
要写一个合法test表达式,却是让我觉得很麻烦的事(
经常写错)
test里面写的表达式经常要结合ognl使用的,
例如:
"
/>
max's
file
here
scott's
file
here
other's
file
here
以上都是基本使用方式
2关于test表达式的flag右值
程序里经常有需要判断一个标志来控制页面元素的显示,
而这个传到页面的标志又是string型的"0"和"1",
表达式该怎么写
display
some
info
你认为像上面这种写法ok吗
自己试试吧
正确的写法如下例:
就是这种写法
\"1\"
使用转义字符,
当然这个例子的ognl复杂了点,因为这段代码所处的环境的关系但重点是这种写法!

lib中加入这个包:struts2-dojo-plugin-2211jar
jsp页面中:
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>
然后使用标签 就可以了 <sx:autocompleter />


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存