Struts 2 s:选择标签动态id

2023-11-25

我在一个 JSP 页面和一个按钮中有多个不同类型的字段。 这些字段是根据从我创建的元数据表中获取的信息生成的。

由于我不知道存在多少个字段以及什么类型的字段,我给动态id给他们。我在 JSP 中使用 Struts 2 标签。

问题在于<s:select>标签:当我在里面给出 scriplet 时id属性,它显示以下错误:

org.apache.jasper.JasperException:/success.jsp(83,12) 需要引用符号

<s:if test="%{#masterColDO.controlType=='dropdown'}">
    <s:select styleClass="login-textbox" 
                   style="width:130px"  
                    list="#masterColDO.validation"     
                    name="chngdColumnValues" 
                      id=<%="columnId" + count%> />
</s:if> 
<s:else>
    <input type=<s:property value="#masterColDO.controlType" /> 
          class="login-textbox " 
           name="chngdColumnValues" 
             id=<%="columnId" + count%> />
</s:else>

JavaScript 如下:

var addUpdateBtnId = document.getElementById('addUpdateBtnId');
addUpdateBtnId.value='Update';
addUpdateBtnId.onclick = function() {
    onClickUpdateBtn(rowIndex);
};
var selectedUpdateRow = xmlhttp.responseText.split(",");
for(var i = 0; i < selectedUpdateRow.length; i++){
    var columnElementId = "columnId"+i;
    document.getElementById(columnElementId).value = selectedUpdateRow[i];
}
document.getElementById("columnId"+(primaryKeyPos-1)).readOnly = true;

Scriptlets是旧的做事方式,你应该避免写作Java代码在JSP根本就是;
Struts2 使用其标签帮助您实现相同的目标OGNL only.

The <input />部分正在工作,因为您正在注入scriptlet在 HTML 标记内,这是允许的。

The <s:select />部分不起作用,因为您正在注入scriptlet在 Struts2 标签内,这是不允许的。

为了使它工作,你应该使用#attr语法在OGNL访问Java声明于的变量Scriptlets并推by you in the Page Context,像这样(完全未经测试):

<%
    for (int counter=0;counter<myList.size();counter++) {
       // pushing it into the pageContext
       pageContext.setAttribute("counter",counter);
%>
        <s:select cssClass="login-textbox" 
                  cssStyle="width:130px" 
                      list="#masterColDO.validation" 
                      name="chngdColumnValues"      
                        id="%{'columnId' + #attr['counter']}" />
<%    
    }
%>

然而,即使技术上可行,也不鼓励这样做。您应该使用纯 Struts2 方式,如下所示:

<s:iterator value="myList" status="ctr">
    <s:select cssClass="login-textbox" 
              cssStyle="width:130px" 
                  list="#masterColDO.validation" 
                  name="chngdColumnValues" 
                    id="%{'columnId' + #ctr.index}" />
</s:iterator>

P.S: Struts 标签没有任何styleClass属性;您可以使用cssClass and/or cssStyle;
而如果controlType是一个字符串,你应该使用.equals代替==: <s:if test="%{#masterColDO.controlType.equals('dropdown')}">.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts 2 s:选择标签动态id 的相关文章

随机推荐

  • SkiaSharp 和 GPU 加速

    我正在评估 SkiaSharp 库 来自 nuget 版本 1 59 3 一切都渲染得很好 但 Skia 似乎并没有使用 GPU 来加速渲染 Windows 10 任务管理器未检测到我的测试应用程序对 GPU 的任何使用 我正在使用下一个命
  • 使用 CSS 设置 HTML 标题属性的样式

    我正在尝试设置标题属性的样式
  • KStream 批处理窗口

    我想使用 KStream 接口批量处理消息 我有一个带有键 值的流 我尝试将它们收集在翻滚窗口中 然后我想立即处理整个窗口 builder stream longSerde updateEventSerde CONSUME TOPIC ag
  • jQuery - 使用canvas 在div 之间绘制线条

    我有 n div s 每个都有 h1 标题和 ul 中的项目列表 我想将它们漂浮在画布上并从中绘制线条 div 列出项目 y 至 div 我正在使用 jQuery UI 来制作 div 可拖动 canvas 元素位于页面下方的一部分 一段文
  • 在 Xcode 6 中设置选项卡栏项目选定的图像

    这是我对选项卡栏项目的设置 但是 当单击应用程序内的项目时 不会显示 1051 id badge selected 图像 而是不显示任何内容 我的设置有问题吗 有任何想法吗 为了解决这个问题并在不编写任何代码的情况下设置选定的图像 我们还可
  • Java 应用程序在 Linux 上挂在“java.io.UnixFileSystem.getBooleanAttributes0”处

    我们的客户应用程序似乎挂起并显示以下堆栈跟踪 java lang Thread State RUNNABLE at java io UnixFileSystem getBooleanAttributes0 Native Method at
  • 如何设置轴限制

    我需要帮助设置 matplotlib 上 y 轴的限制 这是我尝试过的代码 但没有成功 import matplotlib pyplot as plt plt figure 1 figsize 8 5 11 plt suptitle plo
  • 将 cookie 加载到 Python 请求会话时出错

    我正在尝试从 selenium 导出的 cookie 将 cookie 加载到 Python 中的请求会话中 但是当我这样做时 它会返回以下错误 list 对象没有属性 extract cookies def load cookies fi
  • 为不同的Linux版本构建内核模块

    我是编写内核模块的新手 因此面临很少的非技术问题 由于为特定内核版本 例如 3 0 0 10 10 是补丁号 创建内核模块需要相同版本的内核头文件 因此看起来直接安装内核头文件并在那里开始开发 但修补内核版本的内核头不可用 因为我有一个来宾
  • 为什么这个嵌套 lambda 不被视为 constexpr?

    我正在尝试使用嵌套 constexpr lambda 创建一个柯里化接口 但编译器不认为它是常量表达式 namespace hana boost hana using namespace hana literals struct C1 te
  • 如何验证 CuDNN 安装?

    我搜索了很多地方 但我得到的只是如何安装它 而不是如何验证它是否已安装 我可以验证我的 NVIDIA 驱动程序是否已安装 并且 CUDA 是否已安装 但我不知道如何验证 CuDNN 是否已安装 非常感谢您的帮助 谢谢 PS 这是用于咖啡实现
  • 中心绝对定位的div [重复]

    这个问题在这里已经有答案了 我有一个 div 里面有一个按钮 我让按钮位置为absolute 及其样式代码 buy btn text align center position absolute bottom 10px 我怎样才能将其对齐到
  • Git 大提交最佳实践

    我正在使用 git 上周我在本地存储库上进行了大量工作 我喜欢进行许多小提交 例如 2 或 3 个文件 而不是大提交 但这一次由于时间压力和更改涉及许多文件 我有很多文件未暂存 我的问题是 这种情况下的最佳实践是什么 有没有什么工具可以让我
  • 如何制作一个在 IE 和 Firefox 中都有效的 file:// 超链接?

    在我的文档网页中 我经常需要提供指向存储在 Intranet 上的位置 文件和应用程序 xbap 的链接 在 IE 中 这对于格式如下的 URL 来说效果很好 a href Go to folder a a href Download fi
  • 如何为 UITextField 中的占位符文本设置可访问性特征?

    我正在检查我们的 iOS 应用程序来解决辅助功能问题 该应用程序的功能之一是 UITextField 用户可以在其中输入搜索查询 我将该字段的特征设置为 搜索字段 并且 VoiceOver 大部分时间都对该字段做得很好 当字段中有文本时 它
  • 按列而不是按行对结果进行排序

    SQL中可以按列排序而不是按行排序吗 我不需要基本的 ORDER BY 语句 我知道它们是如何工作的 即 按列 1 列 2 等排序 基本上尝试对这样的事情进行排序 column 1 column 2 column 3 1 0 3 尝试对此进
  • 如何检测用户是否启用了 Mac OS 高对比度辅助功能设置?

    我有一个 React TypeScript 项目 我试图检测用户是否启用了任何 Mac OS 的高对比度辅助功能设置 反转颜色 使用灰度 区分无颜色 增加对比度或增加的显示对比度设置 我想使用 JavaScript TypeScript 检
  • Windows 汇编堆和堆栈?

    操作系统 Windows 7 32位 所以像c 一样 有一个堆和一个堆栈 但我最近开始进行一些汇编学习 但没有看到任何类似的东西 只有一个堆栈 但它看起来就像纯粹的内存 那么堆和栈的实现是特定于 C 和其他语言的吗 或者您仍然在汇编中分配堆
  • 无法将 MyObject 类型的对象转换为 MyObject 类型

    我有这样的场景 我在 C 中使用的 Web 服务方法返回一个 Business 对象 当使用以下代码调用 Web 服务方法时 我在 reference cs 类中收到异常 无法将 ContactInfo 类型的对象转换为 ContactIn
  • Struts 2 s:选择标签动态id

    我在一个 JSP 页面和一个按钮中有多个不同类型的字段 这些字段是根据从我创建的元数据表中获取的信息生成的 由于我不知道存在多少个字段以及什么类型的字段 我给动态id给他们 我在 JSP 中使用 Struts 2 标签 问题在于