我找到this question,但似乎没有解决,我还有更多要添加。
首先,链接的问题定义了我所遇到的几乎相同的问题
1.我正在使用ExtLib中的应用程序布局控件
2.按钮是否在该控件中无关紧要。
3. CSJS动作将从按钮触发,SSJS动作不会触发。
4.没有错误
5.浏览器/缓存无关紧要,因为服务器端操作不会触发。
在看到链接的问题之后,我查看了包视图中的Local文件,发现了一个让我不知道是否可能是原因的异常。我以前从未见过这样的文件,甚至在我的其他xpage项目中查看过以确定。
此文件无法删除,单击时,显示窗口显示该元素不存在。
有谁知道这个文件是什么,我如何删除它,还是我的应用程序被破坏了?
**更多信息**
从位于Local目录中的XPage的java文件中复制以下代码段。一切看起来都很好。
private UIComponent createEventHandler(FacesContext context,
UIComponent parent, PageExpressionEvaluator evaluator) {
XspEventHandler result = new XspEventHandler();
String sourceId = "button2/xp:eventHandler[1]/xp:this.action[1]/text()";
MethodBinding action = evaluator.createMethodBinding(result,
"#{javascript:view.postScript(\"alert(\'server script fired!\')\");}",
null,null, sourceId);
result.setAction(action);
result.setSubmit(true);
result.setEvent("onclick");
result.setRefreshMode("complete");
return result;
}
修改
将所有设计元素移动到新的.nsf中以使文件不再存在不会改变SSJS onclick操作未触发的问题。然而,这个奇怪的文件不存在。
答案 0 :(得分:2)
转换器/验证器失败了吗?这可能导致它在Invoke Application阶段之前跳过生命周期。要测试按钮是否实际工作,您还可以使用"不验证或更新数据"。然后SSJS在Apply Request Values阶段运行。如果触发了SSJS(虽然你没有从数据模型或组件中获得浏览器的最新数据),那么转换器或验证器失败是另一个好赌注。