【问题标题】:Can we call html ids from Wicket Java class我们可以从 Wicket Java 类中调用 html id
【发布时间】:2011-08-09 15:30:54
【问题描述】:

有没有一种方法可以调用在 html 页面中创建的 id,而无需在组件中专门提供 wicket:id。如果是这样,我该怎么做?

我想要完成的是访问组件以从 CMS 分配默认值。我可以使用 JS 分配默认值,但是我需要将该值填充到 Java,以便我可以在我的类中使用它来根据默认值更新我的业务逻辑。

【问题讨论】:

  • 我认为没有办法从您的标记中避免 wicket:id。但是,您可以将其从呈现的 HTML 中删除,但这在 Wicket 中不是一个好的做法。如果你愿意,你可以将输出 ID 设置为你想要的值。但也不推荐。
  • @Nishant 是的,我同意。并不是我不想在我的源代码中看到 wicket:id 以及 setMarkupId 给了我提供静态 wicket:id 的选项。但这也不是我想要的。为了澄清我要解决的问题,我编辑了我的问题。不过谢谢你的回复
  • 我还是听不懂你在说什么。您是否尝试动态地将组件添加到页面,而不在 HTML 模板中修复它们的 wicket:ids?
  • 您不是在寻找可以附加到组件的某种更新 Ajax 行为吗?

标签: java wicket


【解决方案1】:

据我了解,Wicket 是面向组件的,这意味着单个组件(一段 HTML 代码)无法查看所有 HTML。我的猜测是,在某个后期阶段,您想查看整个页面的 HTML 并使用具有特定 ID 的 DOM 节点做一些事情。

我不确定正确的解决方案应该是什么。一种方法是将值放入用户的会话中,以便它可用于每个组件和您的业务逻辑。

【讨论】:

  • 这不是重点。 OP 不是在谈论 DOM id,而是 wicket:id 属性,这是将 Java 组件映射到 HTML 代码所必需的。
  • @Sean 我正在尝试做 Aaron 所说的,但不是访问整个 DOM 树的全部范围,我只需要一个可以在 Java 中访问的 HTML id 值
  • @Amar:是什么阻止您使用常量?身份证有变化吗?如果是这样,你能“修复”它吗? ID 应该是常量。
  • 嗯,ID 不会随着 setMarkupId("htmlId") 通过检票口而改变,但是我看到,访问整个 DOM 树需要使用 XML 解析器来访问。当我只需要一个 HTML id 时,我并不热衷于使用 XML 解析器来访问整个 DOM 树。但是,我不确定是否有其他方法可以从 Java 访问此 id。
  • @Aaron 谢谢你。我和我的同事想出了一种在 JS 中调用 Ajax 函数来写入 Java 类并将值存储在会话中的方法。感谢您的帮助。
猜你喜欢
  • 2012-03-19
  • 1970-01-01
  • 2018-03-08
  • 2011-11-07
  • 2013-05-03
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
相关资源
最近更新 更多