0 0

请问这个attr从何而来?谢谢5

=======generatorTag.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>generator标签使用范例</title>
</head>
<body>
<h3 align="left">
generator标签使用范例
</h3>
<s:set name="frank" value="{'欧龙无苯油漆(六度);进户门套油漆;踢脚线;奥普浴霸'}" />
<s:generator separator=";" val="frank" id="example" count="2"></s:generator>
<s:iterator value="#attr.example">
<tr>
<td>
<p>
<s:property />
</p>
</td>
</tr>
</s:iterator>
</body>
</html>


======index.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>
<html>
<head>
<%
    String contextPath = request.getContextPath();
%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="0; URL=<%=contextPath%>/generatorTag.action">
</head>
<body>
</body>
</html>

======struts.xml
<?xml version="1.0" encoding="gb2312"?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="C05.3" extends="struts-default">
    <!-- 直接导航的的Action定义 -->
<action name="appendTag">
<result>/jsp/appendTag.jsp</result>
</action> 
<action name="generatorTag">
<result>/jsp/generatorTag.jsp</result>
</action>
<action name="ifelseifTag">
<result>/jsp/ifelseifTag.jsp</result>
</action>
<action name="iteratorTag">
<result>/jsp/iteratorTag.jsp</result>
</action>
<action name="mergeTag">
<result>/jsp/mergeTag.jsp</result>
</action>  
<action name="sortTag" class="action.SortAction">
<result name="success">/jsp/sortTag.jsp</result>
</action>
<action name="subsetTag" class="action.SubsetAction">
<result name="success">/jsp/subsetTag.jsp</result>
</action>  
    </package>
</struts>

问题补充:<s:iterator value="#attr.example">
中的attr?
2012年8月22日 11:22

2个答案 按时间排序 按投票排序

0 0

采纳的答案

attr是struts2添加到值栈的上下文取的一个Map(org.apache.struts2.util.AttributeMap)


这个attr包含4个作用域:
* A Map that holds 4 levels of scope.
* <p/>
* The scopes are the ones known in the web world.:
* <ul>
*   <li>Page scope</li>
*   <li>Request scope</li>
*   <li>Session scope</li>
*   <li>Application scope</li>
* </ul>

Dispatcher.java  struts2在执行action之前默认放到上下文的 ActionContext

        // helpers to get access to request/session/application scope
        extraContext.put("request", requestMap);
        extraContext.put("session", sessionMap);
        extraContext.put("application", applicationMap);
        extraContext.put("parameters", parameterMap);

        AttributeMap attrMap = new AttributeMap(extraContext);
        extraContext.put("attr", attrMap);


按照这个顺序查找属性,顺序是page--->request----->session---->application;



也就是说通过ActionContext.getContext.get("attr") 是可以获取的到的。

#attr 是ognl表达式,用于访问上下文数据的。

2012年8月22日 11:34
0 0

看这段代码,attr变量是存在于这个页面中的。

没有引入其他页面的话就,看环境的全局变量

如果还解决不了问题你可以输出一下这个变量值看看,根据经验判断是什么玩意,再找变量的实例是从哪里加到页面的,

2012年8月22日 11:34

相关推荐

    Android自定义Attr属性

    在Android开发中,自定义Attr属性是提升...在CustomAttr这个项目中,你可以找到具体的实践案例,通过阅读源码和运行示例,加深对Android自定义Attr属性的理解。实践是检验真理的唯一标准,动手尝试是学习的最佳途径。

    jquery attr()方法

    ery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr

    jquery的attr方法使用

    当`attr`方法只有一个参数时,它将返回被选元素的第一个匹配项的属性值。例如: ```javascript var hrefValue = $('a').attr('href'); console.log(hrefValue); // 输出链接元素的href属性值 ``` ### 三、设置属性...

    重写按钮---attr属性的使用

    通过学习这个教程,开发者能够熟练地运用`attr`来实现动态界面,提高用户体验,并能够阅读和理解相关源码,从而在项目中更高效地应用这一功能。 总的来说,`attr`属性是JavaScript和jQuery中一个非常实用的功能,它...

    css-attr.js

    css-attr.js

    attr() 获取多个a标签 ,并根据不同的id 调用不同的function()

    attr() 函数获取html格式下多个标签,并且根据不同id 调用不同的function()函数 给标签添加id ,根据不同id 获取属性病赋值

    JS中Attr的用法详解

    `attr(name, fn)`允许你提供一个函数来动态设定属性值。函数接收当前元素的索引和原始值作为参数,返回新的值。例如: ```javascript $("ul li:eq(1)").attr("title", function() { return "我就不信"; }); ``...

    Attr

    博文链接虽然无法直接访问,但从iteye这个平台我们知道,这可能是一篇关于代码解析或技术分享的文章。通常,这类博客会深入讲解某个特定功能或技术的实现原理,如解析XML或JSON时的属性处理,或者是自定义控件时的...

    Android 中自定义属性(attr.xml,TypedArray)的使用

    `obtainStyledAttributes()` 方法用于创建TypedArray对象,传入的第二个参数是R.styleable.CustomButton,这是我们在attr.xml中定义的styleable资源ID。 四、自定义属性与主题(Theme) 除了在布局文件中直接设置...

    Style&Attr;详解

    当需要初始化一个控件的属性时,可以通过找到对应的Style,并使用`obtainStyledAttributes`来获取这个关联的属性值。 最后,文档提到了app自定义的方面,即在应用中自定义Theme和Style以满足特定的UI设计需求。通过...

    attr-2.4.44-7.el6.i686.rpm

    attr-2.4.44-7.el6.i686.rpm是centos工具包.

    JQ 设置属性 attr()

    当`attr()`接收一个函数作为`value`参数时,这个函数会被调用一次,对应于每一个匹配的元素,返回值将作为新的属性值。函数有两个参数:元素的索引和当前的属性值。 5. **动态属性**: 在某些情况下,属性值可能...

    CSS3 属性选择器;属性选择器其特点就是通过属性来选择元素;属性选择器的语法: E:attr;

    属性选择器其特点就是通过属性来选择元素 属性选择器的语法: E:[attr]; E表示元素,attr表示元素中的属性 E:[attr=val]; attr=val表示当元素中的属性值是指定值时,设置一个统一的样式 E:[attr^=val]; attr^=...

    attr-20170915.tar.gz

    总结来说,`attr-20170915.tar.gz`是OpenWrt项目中用于构建和维护嵌入式系统的关键资源集合,涵盖了编译工具链、目标平台软件包等多个方面。理解并熟练运用这些资源,能够帮助开发者构建出功能强大且高度定制化的...

    attr-2.4.48.tar.gz(普通资源,通通5币)

    我们关注的这个版本是attr-2.4.48,它作为一个重要的系统组件,为Linux提供了更强大的文件系统管理能力。 attr软件包的核心功能在于其强大的属性扩展能力。在传统的Unix和Linux系统中,文件的基本属性包括权限、...

    attr_copy.rar_The Returning

    "attr_copy.rar_The_Returning"这个标题暗示我们关注的是一个与复制文件属性相关的程序或函数,可能是一个C语言编写的源代码文件,即"attr_copy.c"。这个程序的功能是复制一个属性列表,并返回所占用的字节数。 `...

    attr_extras, 使用attr_initialize之类的方法从 ruby 中取出一些样板.zip

    attr_extras, 使用attr_initialize之类的方法从 ruby 中取出一些样板 attr_extras从 ruby 中提取一些样板,降低了提取小型聚焦类的障碍,而不考虑使用 Struct 函数的缺点。代替class InvoiceBuilder def initialize...

    PyPI 官网下载 | attr_property-0.0.5-py3-none-any.whl

    在Python中,属性通常用于封装类的成员变量,而"attr_property"可能扩展了这一功能,增加了更多的特性或者便利性,例如属性的懒加载、验证或计算属性等。 Python的wheel格式是一种二进制分发格式,它的命名规则有...

    tjh_batch_attr_set批量属性属性修改Maya插件1.0.7更新1

    tjh_batch_attr_set 是一款专为 Maya 用户设计的批量属性管理插件,自2017年推出以来,它已经发展成为一个功能强大的工具,尤其适合大规模场景建模师、动画师、渲染师和特效师。该插件弥补了 Maya 内置功能的不足,...

Global site tag (gtag.js) - Google Analytics