标签: commandbutton

仅在按下某个命令按钮时才根据需要验证输入

我有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)

我的要求是什么:

  1. 当按下提交按钮时,应该处理所有验证,这没关系,这很好.
  2. 当输入字段触发blur事件时,如果字段不为空,则应处理数字验证,这也是正常的.最后我更新了name带有一些值的id的字段.
  3. 现在我有一个问题.我的第三个请求是当输入为空时,不应处理输入验证.这是特殊情况,我将使用id清除字段name.这也是当我除去其在输入已经输入的文本,从组分(按TAB例如)移除焦点的情况下,并在这种情况下AJAX请求也应当被处理和姓名输入也将被清除.

我是如何禁用此输入字段的验证,如果它是空的,只是为了这个ajax事件?

validation required primefaces jsf-2 commandbutton

8
推荐指数
1
解决办法
9900
查看次数

Primefaces对话框+​​ commandButton

我正在尝试使用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)

dialog primefaces jsf-2 commandbutton

7
推荐指数
2
解决办法
7万
查看次数

我自己的主要部分p:commanButton图标

我不能使用我自己的图标作为主要的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图标是可见的,但它是一个图像作为按钮/链接.

jsf primefaces commandbutton

7
推荐指数
1
解决办法
2万
查看次数

p:commandbutton action在p:dialog中不起作用

我有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)

jsf dialog primefaces commandbutton

7
推荐指数
1
解决办法
2万
查看次数

继续使用jsf 2获取javax.faces.application.ViewExpiredException:viewId

无论我做什么,我都会得到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)

shiro jsf-2 viewexpiredexception commandbutton

6
推荐指数
1
解决办法
2万
查看次数

h:commandButton在h:dataTable中不起作用

我试图执行一个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有同样的问题.

datatable jsf commandlink jsf-2 commandbutton

5
推荐指数
1
解决办法
9594
查看次数

更改事件后,JSF ajax事件队列对action-event不起作用

支持的JSF 2.x顺序处理多个ajax事件的功能对我来说不起作用.我有以下场景:

  1. 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)
  2. 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

ajax jsf jsf-2 commandbutton

5
推荐指数
1
解决办法
4204
查看次数

将<p:commandButton>样式应用于<p:commandLink>,因为我基本上需要<p:commandButton target ="_ blank">

有谁知道如何将命令按钮中的相同样式添加到所有命令链接?

我希望所有链接都显示为这样(覆盖链接样式和使用按钮样式):

一个普通的按钮: 在此输入图像描述

悬停按钮: 在此输入图像描述

按下按钮: 在此输入图像描述

我目前的主题是开始

jsf commandlink primefaces commandbutton

5
推荐指数
1
解决办法
1万
查看次数

创建一个类来处理访问表单控制事件

我正在尝试创建一个类来处理 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)

events ms-access vba class commandbutton

5
推荐指数
1
解决办法
1万
查看次数

org.primefaces.component.menubar.MenubarRenderer.encodeSubmenuIcon中的java.lang.NullPointerException

我正在使用一个动态菜单栏.当按下命令按钮时,应更新菜单栏的内容.

这是我非常简单的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)

jsf menubar primefaces commandbutton

5
推荐指数
1
解决办法
2730
查看次数