JavaScript和JSF是如何协同工作的
How do JavaScript and JSF work together?
这里的新开发人员-我很好地掌握了基本的Java,但我对Javascript/jQuery和JSF 2.0不太熟悉(尽管有些熟悉)。
我看了一下这个问题/答案:Java中用于编程Web应用程序的不同技术是如何协同工作的?但我希望更多地综合研究这些技术是如何相互作用的。
我目前正在对一个现有的应用程序进行UI重写。我的大部分工作都是在.xhtml文件中使用JSF/Primefaces,尽管也有一些工作是使用backingbeans和Javascript函数。特别是,如果有人能举一两个例子来展示如何以及为什么从JSF访问Javascript(以及为什么在Java上使用它),那就太好了。
JSF页面(.xhtml)主要使用JSF标签,这些标签可以通过JAVA代码(托管bean)的各种属性绑定,最终所有这些JSF标签都被转换为简单的HTML标签(只需查看源代码并检查最终结果即可。
现在,对于js/jQuery,在页面加载后(页面加载/jQuery就绪),您可以使用js代码来操作html页面(UI),这些代码可以在页面加载/就绪等时执行…或者作为点击页面中某个元素的结果。
除此之外,您可以通过执行$('#someId').click();
之类的操作来使用js/jQuery触发JSF,其中someId
是一些JSF元素的id
<h:commandButton id="someId"
action="#{myBean.myAction}">
<f:ajax execute="@form" render="@form"></f:ajax>
</h:commandButton>
记住,所有JSF元素/PrimeFaces元素最终都被翻译成简单的HTML元素(在PrimeFaces中,相关的js代码被包含在页面中,以便它们的UI元素工作)
就是这样…
JSF确实有用于调用js代码的钩子,它主要是与调用ajax一起完成的,例如,您可以在ajax开始前显示一个加载div,并在ajax结束后隐藏它(谷歌关于JSF-ajax begin
complete
success
)
从js调用JSF操作-例如,如果你有一个jquery插件,它包含一些数据,并且你想提交给你的托管bean-在这种情况下,你可以将所有插件数据(一些JSON)放入隐藏的文本输入中,然后向你的服务器发出执行该JSON的JSF-ajax调用),
Java用于后端。例如,在一个典型的web应用程序中,您有一个简单的html或jsp登录页面。你怎么知道用户名和密码是正确的,所以你写java代码并放入一些逻辑来实现这一点。可以使用JavaScript的原因有很多——它是一种同步语言,意味着可以在不刷新url的情况下操作数据。或者它可以用来验证诸如不允许使用的特殊字符之类的东西。
- AngularJS指令意外地协同工作
- 让两个 jquery 脚本像它们应该的那样协同工作
- 数据表 + 列搜索 + 整体搜索协同工作 + 服务器端处理
- Rcharts 和 D3 图不能协同工作
- 如何让、要求和原型协同工作以在 javascript 中制作对象
- react如何与修改html的javascript ui组件协同工作
- 使list.js和react.js协同工作
- 如何使jquery与ajax协同工作
- Backbone.js应用程序使用CommonJS结构与node.js和客户端协同工作
- 如何组合关键代码以在javascript中协同工作
- 让PHP、Form和Javascript协同工作
- JavaScriptjQueryappendTo和插件协同工作
- Asp.net Ajax事件句柄如何与DOM事件协同工作
- CryptoJS和Pycrypto协同工作
- 如何让两个JS/Jquery插件协同工作
- 如何使此应用程序与移动浏览器协同工作
- 让smoothState.js和Foundation6协同工作
- 让 jquery 和 css 过渡效果协同工作
- Ajax 构建关系按钮有效,用于显示引导模式的第二个按钮有效,但两者不能协同工作
- JavaScript和JSF是如何协同工作的