我正在尝试使用 java 函数给出的消息触发警报。系统就这么简单:
public class AdminBean extends AbstractListBean {
private Collection <Hours> A;
private ModelDto selectedModel;
private String message;
public void insert() {
//some preparations
setMessage("");
if ( selectedModel!= null ) {
try{
//try insert of selected model
setMessage("Success");
}catch (Exception e) {
setMessage("Unespected Error");
}
}else{
setMessage("Not available");
}
//getHttpServletRequest().setAttribute("message", getMessage());
//FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(message));
}
}
而且,在客户端,我写了这样的 xhtml:
<a4j:commandLink styleClass="inscribirse" rendered="#{model.status eq 'N' and model.styleClass eq 'font-weight:bold;'}">
<a4j:jsFunction name="okClicked" actionListener="#{AdminBean.insert}" oncomplete="reDirigir(message)">
<a4j:actionparam name="message" assignTo="#{AdminBean.message}"/>
</a4j:jsFunction>
<h:outputText value="Inscribirse" />
<f:setPropertyActionListener target="#{AdminBean.selectedModel}" value="#{model}" />
</a4j:commandLink>
因此,当单击 A4J 命令时,“插入”功能运行,我可以看到它正在查看数据库,但“reDirigir”功能不起作用:
function reDirigir(c){
alert(c);
window.location.href='#{facesContext.externalContext.request.contextPath}/StrutsJsfServlet?beanName=menuBean&method=eventos';
}
我的意图是显示来自 bean 的消息,然后刷新页面。有什么建议么?
非常感谢!
PS:这个 xhtml 代码在集合 A 的迭代中,#{model} 是迭代器中使用的别名: