如何在JSP中实现动态GUI
我有一个要求,我需要在 JSP 上显示一些字段。这些字段本质上是动态的,这意味着,例如:如果我更改了下拉列表中的某些值,某些字段将被隐藏,而其他一些字段可能会出现。我不想编写 JavaScript 来显示/隐藏 div,而是希望在服务器端的某个地方编写逻辑。
我有一个实现自定义标签库的想法,但我想知道是否可以获得开箱即用的解决方案。
欢迎任何新的建议或解决方案。
i have a requirement where i need to display some fields on the JSP. These fields are dynamic in nature, meaning, for ex:, if i changed some value in the dropdown, some fields will be hidden and some other fields might come. I dont want to write Javascripts for show/hide of divs, rather want logic to be coded somewhere at server side.
I have an idea of implementing a custom tag library, but i wnat if i could get an out of the box solution.
any new suggestions or solutions are welcomed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你最好用 JavaScript 来做。话虽如此,您可以发送 AJAX 请求以根据提供的输入获取新的表单字段。例如,使用
来设置来自服务器的 HTML。
You had better do it in JavaScript. Having said that, you can send AJAX request to get the new form fields based on the input provided. For example, have a
<div>
to set the HTML coming from the server.使用struts框架,有一些标签可以根据值隐藏和显示字段
逻辑/逻辑输出标签示例
Use struts framework , there are some tags which can hide and show fields based on values
Logic/logicout tags example
如果您想使用 Web 框架,请尝试 Struts 2。它提供了诸如
之类的标签来选择性地渲染 html 内容。否则,您可以使用 JSTL core 标记,该标记提供
和
标记 ( 示例 )。请记住在更改选择框值后重新加载页面以更新 UI。
为此,可能需要一些 JavaScript。
If you want to use a web framework, try Struts 2. It provides tags like
<s:if test="some ognl expression" ...>
to selectively render html content.Otherwise you could just go with the JSTL core tags, which provide a
<c:if text="some Java EL expression" ...>
and a<c:choose ...>
tag ( Example ).Remember to reload the page after changing select box values in order to update the UI.
For this some JavaScript might be needed.
Javascript 中的 DOM(文档对象模型)非常强大并且跨浏览器。
上的节点
要删除 UI 1.removeChild(nodename)
上添加节点
,要在 UI 2.elementNode.insertBefore(new_node,existing_node)
,我使用了它。效果很好。
有关 DOM 的更多信息。
http://www.w3schools.com/dom/default.asp
DOM (Document Object Model) in Javascript is very powerful and cross browser.
to remove a node on UI
1.removeChild(nodename)
to add a node on UI
2.elementNode.insertBefore(new_node,existing_node)
I used it. it works well.
more information on DOM.
http://www.w3schools.com/dom/default.asp