<f ajax>,<f:ajax render =“@ all”>在生产环境中不起作用

在jsf 2.2应用程序中,我有一个带有此标记的表单

我使用id "code_editor_demo_1",以便一个名为CodeMirror的javascript插件将textarea格式化为:

Ab8q1.png

现在有一个名为“next”的按钮用于导航

方法nextQuestion()执行一些处理并返回类型为void。

现在在我的本地环境中,当我单击下一步时,页面将被重新呈现以显示新值+插件Codemirror将重新应用于textarea。

在生产环境上(云托管托管的应用程序,AWS上的数据库),调用方法但是UI NOT更新,重新渲染@all的ajax调用不会发生

我试过了:

使用两个特定的

.. ID来替换@all,新值正确显示EXCEPT,即codemirror插件不会格式化要显示的在上图中。这就是为什么我必须使用@all,因为它是在textarea上重新应用插件的唯一值。

注意:插件的工作方式是将ID指定为“code_editor_demo_1”

为什么?我该如何解决这个问题?感谢。

更新

正如用户@Kukeltje建议的那样,我确实找到了在textarea上重新应用codemirror插件的Javascript方法。

JS handledemo

var ComponentsCodeEditors = function () {

var handleDemo1 = function () {

var myTextArea = document.getElementById('code_editor_demo_1');

var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {

lineNumbers: true,

matchBrackets: true,

styleActiveLine: true,

theme:"ambiance",

mode: 'javascript'

});

}

return {

//main function to initiate the module

init: function () {

handleDemo1();

}

};

}();

jQuery(document).ready(function() {

ComponentsCodeEditors.init();

});

但是,具有此代码的页面称为test.xhtml,并且它始终具有名为id的参数。例如test.xhtml?id = 5。

我现在遇到的问题是,在我点击下一个Btn(执行ajax部分)之后。网址的id参数部分被删除,因此网址不是test.xhtml?id = 5,而是更改为test.xhtml。

任何想法我该如何解决这个问题?感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值