我有JSF验证的特定用例.例如,我有一个inputText字段:
<p:inputText id="input" required="#{myBean.required}" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}">
<p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/>
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
输入的值是数字(在某些情况下,它也可以是一个字符串,因为这是复合组件的一部分,但如果我们假设这是一个数字,则可以更好地描述问题).此输入是表单的一部分,在表单的末尾我有提交按钮:
<p:commandButton value="Save" actionListener="#{myBean.save}"/>
Run Code Online (Sandbox Code Playgroud)
我的要求是什么:
name带有一些值的id的字段.name.这也是当我除去其在输入已经输入的文本,从组分(按TAB例如)移除焦点的情况下,并在这种情况下AJAX请求也应当被处理和姓名输入也将被清除.我是如何禁用此输入字段的验证,如果它是空的,只是为了这个ajax事件?
我正在尝试使用primefaces <p:dialog>结合<p:commandButton>.在我的.xhtml页面中,我有一个选项列表和commandButton,用于显示对话框.Dialog显示数据表,其中包含来自选项列表的目标值.Dialog有两个按钮:取消和提交.我的问题是没有触发提交按钮.奇怪的是,commandButton没有对话框了.
这是我的.xhtml:
<body>
<ui:composition template="./../resources/mainTemplate.xhtml">
<ui:define name="content">
<h:form>
<p:dialog id="dlg" header="#{messages.chooseSkillLevel}" widgetVar="dlg" modal="true" dynamic="true">
<h:dataTable value="#{editSkills.skillsAndLevels}" var="skillslevel">
<h:column>
#{skillslevel.skill.umiejetnosc}
</h:column>
<h:column>
<p:selectOneMenu value="#{skillslevel.level}" >
<f:selectItems value="#{editSkills.levels}" var="level" itemLabel="#{level.stopien}" itemValue="#{level.id}" />
</p:selectOneMenu>
</h:column>
</h:dataTable>
<p:commandButton value="#{messages.confirm}" action="#{editSkills.showSkillsAndLevels}" oncomplete="dlg.hide();" /> THIS BUTTON IS NOT FIRED
<p:commandButton value="#{messages.cancel}" onclick="dlg.hide()"/>
</p:dialog>
<p:pickList value="#{editSkills.skills}" var="skill" effect="none"
itemValue="#{skill.id}" itemLabel="#{skill.umiejetnosc}"
showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains"
addLabel="#{messages.add}" removeLabel="#{messages.remove}" removeAllLabel="#{messages.removeAll}" >
<f:facet name="sourceCaption">#{messages.skillsList}</f:facet>
<f:facet name="targetCaption">#{messages.yourSkills}</f:facet>
<p:ajax event="transfer" listener="#{editSkills.onTransfer}" />
<p:column style="width:100%;">
#{skill.umiejetnosc}
</p:column>
</p:pickList>
<p:commandButton value="#{messages.confirm}" action="#{editSkills.afterSubmit}" …Run Code Online (Sandbox Code Playgroud) 我不能使用我自己的图标作为主要的p:commandButton.我的代码是:
<p:commandButton value="Cancel" action="#{userBb.cancel()}"
icon="ui-icon-myCancel" />
Run Code Online (Sandbox Code Playgroud)
css是:
.ui-icon-myCancel{
background-image: url(images/cancel_16.png) !important;
}
Run Code Online (Sandbox Code Playgroud)
文件夹的结构是普通的: /resources/images/cancel_16.png
结果我得到: 
当我尝试:
.ui-state-default .ui-icon .ui-icon-myCancel{
background-image: url(images/cancel_16.png) !important;
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
当我看萤火虫报告时,有节跨度
<span class="ui-button-icon-left ui-icon ui-c ui-icon-myCancel"></span>
Run Code Online (Sandbox Code Playgroud)
有:
.ui-state-default .ui-icon {
background-image: url("/WarPort08_02b/javax.faces.resource/images/ui-icons_38667f_256x240.png.xhtml?ln=primefaces-aristo");
Run Code Online (Sandbox Code Playgroud)
我看过这个解释,其他人却没有找到答案.
当我尝试p:commandLink with h:graphicImage图标是可见的,但它是一个图像作为按钮/链接.
我有ap:对话框,里面有一个面板.问题是"保存"按钮的操作方法不起作用.它甚至不调用该方法.我可以达到方法def.使用ctrl + lm,因此方法名称没有问题.
<h:body>
<h:form id="createAppUserForm" prependId="false">
....
<p:dialog id="newRoleDialogId"
header="Add New Role"
resizable="true"
draggable="true"
widgetVar="newRoleDetailsDialog"
appendToBody="true"
>
<p:panel id="newRoleDialogPanel">
<p:panelGrid id="newRoleDialogPanelGrid" columns="2" style="width: 100%" styleClass="panelGridWithoutBorder">
<h:outputText value="Role Name :"/>
<p:inputText value="#{createAppUserController.selectedRole.name}"/>
<h:outputText value="Role Desc :"/>
<p:inputText value="#{createAppUserController.selectedRole.description}"/>
</p:panelGrid>
<center>
<p:commandButton value="Save"
update="roleListDataTable newRoleDialogPanelGrid growlCreateAppUser"
oncomplete="if (!args.validationFailed) newRoleDetailsDialog.hide()"
action="#{createAppUserController.saveNewRole()}"/>
<p:commandButton value="Cancel"
immediate="true"
onclick="newRoleDetailsDialog.hide()" />
</center>
</p:panel>
</p:dialog>
</h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud) 无论我做什么,我都会得到javax.faces.application.ViewExpiredException:viewId.我知道如何处理异常(如果我收到错误,再次重定向到主页),问题是我从commandButton调用的任何操作都没有执行.
基本上我有一个带有动作的commandButton的简单视图..我按它并得到viewExpiredException或如果我处理错误,我没有得到错误消息但仍然我的commandButton不起作用.
我尝试添加这个:
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>client</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我不知道发生了什么事......
这是我的看法:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
lang="es">
<div class="container">
<h:form id="principal">
<h1>Sistema de carga de publicaciones</h1>
<h:outputText value="Ingrese el año por el que desea buscar publicaciones" />
<h:inputText
id="year"
value="#{publicaciones.año}" />
<h:commandButton
style="display:block"
id="boton-codigo-facultad"
value="Buscar"
type="submit">
</h:commandButton>
<h:panelGroup id="output">
<h:outputText
style="display:block"
value="Total publicaciones en la DB:#{publicaciones.totalPublicacionesDB}" />
<h:outputText
style="display:block"
value="Publicaciones obtenidas desde el WS:" />
<h:outputText
style="display:block"
value="Publicaciones nuevas:" />
</h:panelGroup> …Run Code Online (Sandbox Code Playgroud) 我试图执行一个action通过commandButton内部的dataTable,但action在时不调用commandButton被放置在数据表中,如下图所示
<h:form>
<h:dataTable value="#{bean.list}" var="item">
<h:column>
<h:commandButton value="submit" action="#{bean.submit}" />
</h:column>
</h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
当我commandButton移出时dataTable,action成功执行.数据表内部有什么问题commandButton?该commandLink有同样的问题.
支持的JSF 2.x顺序处理多个ajax事件的功能对我来说不起作用.我有以下场景:
h:inputText(CHANGE)
<h:inputText id="consumption_input"
value="#{cc.attrs.consumptionInfo.consumption}">
<f:ajax
render="#{cc.attrs.outerRenderString}"
event="change" listener="#{cc.handleAjaxRequest}" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)h:commandButton(ACTION)
<h:commandButton
id="startComparisonButton"
action="#{rateComparisonBean.startRateComparison()}"
value="#{bundle.rateResultOverview_startComparison}">
<!-- This is to avoid mixed requests, ajax and full requests -->
<f:ajax render="@form"/>
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)如果它们自己触发,则两个元素的事件都会被正确处理.
在一次单击中触发两个事件时出现问题(在textInput中输入值,然后单击按钮).我预计这导致两个同步触发的ajax请求(CHANGE-TextField和ACTION-commandButton).
不幸的是,只有一个Ajax-Request(Change-TextField),第二个事件似乎完全丢失了.
我已经确保所有前提条件啊:commandButton都是完全填充的,如下所示: commandButton/commandLink/ajax action/listener方法未被调用或输入值未更新
我很高兴得到任何关于如何解决这个问题的提示.
环境:Glassfish 3,Mojarra 2.1.3-FCS
有谁知道如何将命令按钮中的相同样式添加到所有命令链接?
我希望所有链接都显示为这样(覆盖链接样式和使用按钮样式):
一个普通的按钮:

悬停按钮:

按下按钮:

我目前的主题是开始
我正在尝试创建一个类来处理 Access 中的多个控制事件。这是为了避免重复键入多行相同的代码。
我已遵循下一页上的答案,但进行了一些调整以使其适合 Access 而不是 Excel。
我的班级代码如下:
Option Compare Database
Public WithEvents ct As Access.CommandButton 'Changed object type to something recognised by Access
Public Sub ct_Click()
MsgBox ct.Name & " clicked!"
End Sub
Run Code Online (Sandbox Code Playgroud)
我的表单代码如下:
Option Compare Database
Private listenerCollection As New Collection
Private Sub Form_Load()
Dim ctItem
Dim listener As clListener
For Each ctItem In Me.Controls
If ctItem.ControlType = acCommandButton Then 'Changed to test whether control is a Command Button
Set listener = New clListener
Set listener.ct = …Run Code Online (Sandbox Code Playgroud) 我正在使用一个动态菜单栏.当按下命令按钮时,应更新菜单栏的内容.
这是我非常简单的xhtml页面
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>CoSMo</title>
</h:head>
<h:body>
#{simpleMenuBacking.init()}
<h:form>
<p:commandButton value="Submit" action="#{simpleMenuBacking.updateModel()}" update="mb1"/>
<p:growl id="messages" showDetail="false"/>
<p:menubar id="mb1" model="#{simpleMenuBacking.model}" />
</h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)
而我的(相应简单)支持bean:
@Named
@SessionScoped
public class SimpleMenuBacking implements Serializable {
private DefaultMenuModel model;
public void init() {
Logger.getLogger(UserBacking.class.getName()).info("[SimpleMenuBacking.init()] Starting.");
model = new DefaultMenuModel();
String myMenuEntry = "MENU ENTRY " + new Random().nextInt();
Logger.getLogger(UserBacking.class.getName()).info(myMenuEntry);
model.addElement(new DefaultSubMenu(myMenuEntry));
}
public SimpleMenuBacking() {
}
public DefaultMenuModel getModel() {
Logger.getLogger(UserBacking.class.getName()).info("[SimpleMenuBacking.getModel()] Starting.");
return model;
}
public void updateModel() {
Logger.getLogger(UserBacking.class.getName()).info("[SimpleMenuBacking.updateModel()] Starting.");
String …Run Code Online (Sandbox Code Playgroud) commandbutton ×10
jsf ×6
primefaces ×6
jsf-2 ×5
commandlink ×2
dialog ×2
ajax ×1
class ×1
datatable ×1
events ×1
menubar ×1
ms-access ×1
required ×1
shiro ×1
validation ×1
vba ×1