问题:
在JSF页面中,在触发一个动作之前弹出一个确认对话框(例如:删除一条记录,取消编辑)。
解决方式:
使用JavaScript中的confirm()方法实现!
如果有更好的方式,希望能够分享!
实现:
1、对于<h:commandLink>组件:
<h:commandLink action="#{bookingShip.affirmBook}"
onclick="if (!confirm('#{msgs.confirm_areYouSure}')) return false;">
<h:outputText value="#{msgs.button_submit}" rendered="#{task.mxdStateN<1}"/>
</h:commandLink>
上述代码中:#{msgs.confirm_areYouSure},在资源文件中为:“您确认这样做吗?”
解析成HTML后:
<a href="#" onclick="
var a=function(){
if (!confirm('您确认这样做吗?'))
return false;
};
var b=function(){
if(typeof jsfcljs == 'function'){
jsfcljs(document.forms['j_id_jsp_1722095761_5'],'j_id_jsp_1722095761_9:3:j_id_jsp_1722095761_45,j_id_jsp_1722095761_9:3:j_id_jsp_1722095761_45','');
}
return false
};
return (a()==false) ? false : b();">
提交
</a>
屏幕显示:
2
、对于<h:commandButton>组件:
<h:commandButton onclick="if (!confirm(#{msgs.confirm_areYouSure}')) return false"/>
在这里的commandButton被解析成了一个提交按钮。如果javaScript返回true值这个表单会被提交,如果返回false将会忽略表单的提交。
使用JSF,是个新手!
希望能够将在学习使用的过程中,遇到的一些问题及解决的方法与大家一起共享!
在尝试使用JSF的过程中,还使用了以下一些技术!
Spring,Hibernate,Ajax4JSF,MySQL