`
kidiaoer
  • 浏览: 818722 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

struts2标签使用小结

阅读更多
struts2标签使用小结
1 #号,能访问actioncontext的上下文资源,例子如下:
public class OgnlAction extends ActionSupport implements ServletContextAware,
ServletRequestAware, SessionAware {

private static final long serialVersionUID = -6175904602786022346L;

private HttpServletRequest request;
private ServletContext application;
private Map<String, Object> session;

@SuppressWarnings("all")
private List<Magazine> magazineList = new ArrayList<Magazine>() {
{
add(new Magazine("时代周刊", 10));
add(new Magazine("足球之夜", 19));
add(new Magazine("时尚", 20));
add(new Magazine("时代影视", 50));
}
};

public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

public void setServletContext(ServletContext application) {
this.application = application;
}

@SuppressWarnings("all")
public void setSession(Map session) {
this.session = session;
}

public String execute() {

request.setAttribute("account", "account from request");
application.setAttribute("account", "account from response");
session.put("account", "account from session");

return Action.SUCCESS;
}

public List<Magazine> getMagazineList() {
return magazineList;
}

public void setMagazineList(List<Magazine> bookList) {
this.magazineList = bookList;
}

JSP页面:
所有的ID:<struts:property value="#parameters.id"/> <br/>
第一个ID:<struts:property value="#parameters.id[0]"/> <br/>
request 中取属性:<struts:property value="#request.account"/> <br/>
session 中取属性:<struts:property value="#session.account"/> <br/>
application 中取属性:<struts:property value="#application.account"/> <br/>
attr 中取属性:<struts:property value="#attr.account"/> <br/>
<hr />
价格大于18元的杂志共有 <struts:property value="magazineList.{?#this.price>18}.size()" /> 本,分别是:<br/>
<struts:iterator value="magazineList.{?#this.price>18}">
<struts:property value="name" /> - ¥<struts:property value="price" />. <br/>
</struts:iterator>
<hr />
名称包含“时代”二字的杂志共有 <struts:property value="magazineList.{?#this.name.contains('时代')}.size()"/> 本,分别是:<br/>
<struts:iterator value="magazineList.{?#this.name.contains('时代')}">
<struts:property value="name" /> - ¥<struts:property value="price" />. <br/>
</struts:iterator>
<hr />
“足球之夜”的价格为 ¥<struts:property value="magazineList.{?#this.name.contains('足球之夜')}[0].price"/>。

其中注意OGNL的灵活用法

2 下面两个注意区别:
    <struts:label label="#request.account"></struts:label>
<struts:label label="%{#request.account}"></struts:label>

    其中第一个会输出字符串#request.account",第二个会把request.account的结果输出.

3 autocomplete控件:
  
<s:url id="dataUrl" value="/autocompleteAjaxData.jsp" />

请选择国家:
<struts:autocompleter name="country" theme="ajax" href="%{dataUrl}"
loadOnTextChange="true" loadMinimumCount="1" autoComplete="false"
showDownArrow="true" indicator="indicator"  />
<img id="indicator" src="images/loading.gif" />
     其中href为获取数据的URL,indicator可以为一个属性或文字,获取数据的JSP如下:
out.clear();

request.setCharacterEncoding("UTF-8");

response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

String[] countries = { "。。。。。“}
String country = request.getParameter("country");

if (country == null)
country = "";

StringBuffer buffer = new StringBuffer();

for (int i = 0; i < countries.length; i++) {
if (countries[i].toLowerCase()
.startsWith(country.toLowerCase())) {
if (buffer.length() != 0)
buffer.append(",");
buffer.append("['" + countries[i] + "']");
}
}

Thread.sleep(500);

out.print("[" + buffer + "]");

4 连动框doubleselect:
  <struts:head theme="ajax" />
<%
List<String> provinceList = new ArrayList<String>();
provinceList.add("北京");
provinceList.add("上海");
provinceList.add("天津");
provinceList.add("重庆");
provinceList.add("河北");
provinceList.add("河南");
provinceList.add("山东");
provinceList.add("山西");
provinceList.add("江苏");
provinceList.add("浙江");

request.setAttribute("provinceList", provinceList);

Map<String, List<String>> cityMap = new HashMap<String, List<String>>();

{
// 北京市
List<String> cityList = new ArrayList<String>();

cityList.add("东城区");
cityList.add("西城区");
cityList.add("海淀区");
cityList.add("朝阳区");

cityMap.put("北京", cityList);
}
{
// 山东省
List<String> cityList = new ArrayList<String>();

cityList.add("青岛");
cityList.add("济南");
cityList.add("潍坊");
cityList.add("烟台");
cityList.add("淄博");

cityMap.put("山东", cityList);
}

request.setAttribute("cityMap", cityMap);
%>

<struts:form action="login">
<struts:doubleselect name="province" list="#request.provinceList"
doubleName="city" doubleList="#request.cityMap.get(top)" label="请选择省份、市"/>
</struts:form>
5 optiontransferselect标签
<%
List<String> provinceSelected = new ArrayList<String>();

provinceSelected.add("北京");
provinceSelected.add("上海");
provinceSelected.add("天津");
provinceSelected.add("重庆");
provinceSelected.add("河北");
provinceSelected.add("河南");
provinceSelected.add("山东");
provinceSelected.add("山西");
provinceSelected.add("江苏");
provinceSelected.add("浙江");

request.setAttribute("provinceSelected", provinceSelected);

List<String> provinceUnselected = new ArrayList<String>();

provinceUnselected.add("湖南");
provinceUnselected.add("湖北");
provinceUnselected.add("云南");
provinceUnselected.add("广东");
provinceUnselected.add("广西");

request.setAttribute("provinceUnselected", provinceUnselected);
%>
<struts:form action="login">
<struts:optiontransferselect name="province"
doubleList="#request.provinceSelected"
list="#request.provinceUnselected" doubleName="city" leftUpLabel="向上"
leftDownLabel="向下" rightDownLabel="向下" rightUpLabel="向上"
leftTitle="已经选中的省份" headerKey="" headerValue="---请选择省份---"
rightTitle="剩余的省份" />
</struts:form>

6 TAB标签
<s:tabbedPanel id="test">

<s:div id="one" label="第一个 TabItem" theme="ajax" labelposition="top"
cssStyle="padding: 10px; ">
第一个 TabItem <br />
第一个 TabItem <br />
</s:div>

<s:div id="two" label="第二个 TabItem" theme="ajax"
cssStyle="padding: 10px; ">
        第二个 TabItem <br />
        第二个 TabItem <br />
</s:div>

<s:url action="divNews" id="divNewsUrl"></s:url>
<s:div id="three" label="新闻列表" theme="ajax" href="%{#divNewsUrl}">
</s:div>

</s:tabbedPanel>

<br/>

<s:tabbedPanel id="test2" closeButton="tab">

<s:div id="one2" label="第一个 TabItem" theme="ajax" labelposition="top"
cssStyle="padding: 10px; ">
第一个 TabItem <br />
第一个 TabItem <br />
</s:div>

<s:div id="two2" label="第二个 TabItem" theme="ajax"
cssStyle="padding: 10px; ">
        第二个 TabItem <br />
        第二个 TabItem <br />
</s:div>

<s:div id="three2" label="新闻列表" theme="ajax" href="%{#divNewsUrl}">
</s:div>

</s:tabbedPanel> 
分享到:
评论

相关推荐

    Struts2标签集锦(附Struts2标签详解word文档)

    总结起来,Struts2标签集锦是Java Web开发中的强大工具,它简化了视图层的开发,提高了代码可读性和可维护性。通过熟练掌握Struts2标签的使用,开发者可以更高效地构建动态网页,同时享受到Struts2框架带来的便利和...

    Struts2 标签使用简介

    总结,Struts2标签库是其强大功能的一部分,通过使用标签,开发者可以更高效地构建Web应用的视图层,同时提高代码的可读性和维护性。理解和熟练掌握Struts2的标签使用,是提升Java Web开发效率的关键。通过实践,你...

    Struts2常用标签总结

    java Web开发,我们最常用的Struts2常用标签总结,帮助你Struts2常用标签有那些功能

    Struts2实例 国际化 类型转换 struts标签

    总结起来,这个Struts2实例项目通过整合国际化、类型转换和Struts2标签,构建了一个完整的用户管理系统,展示了如何在实际开发中高效地处理Web请求,实现业务逻辑,并提供多语言支持。这样的练习有助于提升开发者对...

    struts2标签的使用代码

    总结,Struts2标签库是Struts2框架的重要组成部分,它使得开发者能够更加专注于业务逻辑,而不是繁琐的视图层实现。通过合理利用这些标签,可以大大提高开发效率,同时提升Web应用的用户体验。在实际项目中,熟练...

    struts2-tags-API,struts2标签api

    总结,`struts2-tags-API`是学习和使用Struts2框架标签的重要资源。通过深入理解和应用这些标签,开发者可以构建出高效、整洁且易于维护的Web应用。对于Java web开发者来说,掌握Struts2标签的API是提升开发效率的...

    struts2标签详解与实例

    总结,Struts2的标签库极大地简化了JSP页面的编写,提高了开发效率。通过深入学习和实践,开发者可以充分利用这些标签来构建出结构清晰、功能强大的Web应用。在实际项目中,结合源码分析和相关开发工具,可以进一步...

    struts2标签使用实例

    ### Struts2 标签使用实例详解 #### 一、Struts2标签概述 Struts2框架提供了丰富且强大的标签库,这些标签不仅简化了页面的开发,还提高了开发效率和代码可维护性。与Struts1不同的是,Struts2并没有对标签进行严格...

    struts 1.2 标签使用说明

    2. **Struts标签的公共特征**: - **自动区分范围**:标签在查找对象时会自动遍历页面、请求、会话和应用程序范围。 - **公共属性**: - `id`:定义自定义标签创建的脚本变量名称。 - `name`:指定关键字以查找...

    struts2.0标签使用

    在探讨Struts2.0标签库的使用时,我们首先需要了解Struts2.0框架的基本概念及其在MVC架构中的角色。Struts2.0是基于Java的一个开源Web应用框架,它继承了Struts1.x的优点并在此基础上进行了大量的改进和增强。Struts...

    Struts2标签使用

    ### Struts2 标签使用详解 #### 一、引言 在Web开发领域,Struts2框架以其灵活且强大的特性被广泛采用。Struts2提供了丰富的标签库,这些标签不仅可以帮助开发者简化页面代码,还能提高项目的可维护性和扩展性。...

    struts2标签之列求和

    ### Struts2 标签之列求和 在Struts2框架中,处理表单、迭代数据等功能时,经常需要用到各种内置标签。其中,`&lt;s:iterator&gt;` 标签常用于循环显示列表数据,而结合`&lt;s:set&gt;`标签可以实现对列表中的数值进行求和操作...

    struts2标签使用

    ### Struts2 标签库概述 Struts2框架提供了丰富的标签库,这些标签不仅可以简化JSP页面的开发,还能增强页面的表现力和功能性。与Struts1相比,Struts2不再采用繁琐的标签分类方式,而是根据标签的用途进行区分。...

    struts标签库使用

    总结,Struts标签库为Java Web开发者提供了一套强大且便捷的工具,用于构建动态网页。通过熟练掌握和恰当使用这些标签,可以提升开发效率,降低维护成本,同时提高应用的质量和用户体验。在实际项目中,合理利用...

    struts2 标签使用

    ### Struts2 `&lt;s:if&gt;` 标签使用详解 #### 概述 Struts2 是一款基于 Java 的企业级 Web 应用框架,它利用了 MVC(Model-View-Controller)架构模式来帮助开发者构建可扩展、易于维护的 Web 应用程序。在 Struts2 中...

    struts1.2标签实例

    Struts1.2标签库很好地体现了MVC(Model-View-Controller)模式,其中模型由Action和ActionForm对象表示,视图由JSP页面和Struts标签组成,控制器则由Struts框架本身处理,负责转发请求和调用相应的Action。...

    struts2标签

    javaEE中对struts2所有标签的总结与介绍,和简单的用法操作。

    struts2 表单标签的使用

    总结来说,Struts2的表单标签提供了一套完整的解决方案,用于创建动态、交互式的网页表单。它们不仅简化了HTML代码的编写,还引入了强大的验证和数据绑定功能,极大地提高了开发效率。通过熟练掌握Struts2表单标签的...

    Struts2常用标签及说明

    ### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。这些标签不仅简化了页面逻辑的编写,还提高了代码...

Global site tag (gtag.js) - Google Analytics