未从灰色框窗口调用ManagedBean方法

时间:2014-04-14 17:09:00

标签: jsf jsf-2 jsf-1.2 ajax4jsf greybox

我的项目有问题。我正在使用jsf1.2,towmhawk,a4j框架和greybox javascript。我想获得多个用户名和密码。所以我使用下面的代码

ManagedBean: psgBean
    private String username;(managedbean code)
    private String password; //setter and getters
    public String addPsgLogin()
    {
        System.out.println("inside addUP");
        if(username.length()!=0 && password.length()!=0)
        {
            psgLoginFlag=1;
            psgUserNameErrorMsg="";
            psgPasswordErrorMsg="";
        NiPsgLoginInfo psgObj=new NiPsgLoginInfo(username,password);
        userpassList.add(psgObj);

        }




My Jsp page :newInstallations

                      UserName 
<h:inputText styleClass="text_box_content" id="psgUserName"  value="#{psgBean.username}" size="35" />
<h:outputLabel id="psgUserNameErrorMsg"  styleClass="error_style" value="#{psgBean.psgUserNameErrorMsg}" />

 Password 
 <h:inputText styleClass="text_box_content" id="psgPassword"  value="#{psgBean.password}" size="35" />
  <h:outputLabel id="psgPasswordErrorMsg"  styleClass="error_style" value="#{psgBean.psgPasswordErrorMsg}" />


<h:commandButton styleClass="button_style"  value="Add" actionListener="#{psgBean.addPsgLogin}"  / >                                        

 <h:commandButton styleClass="button_style" value="Reset" onclick="psgClear()" type="button" />  

<h:outputLink   value="psgusername.faces" onclick="return GB_myShow('Solvedge smartphone Web Portal', this.href,600,850)"  >
<h:commandButton styleClass="button_style" value="View"></h:commandButton>
 </h:outputLink>            

图片如下login page

添加多个用户登录后,我希望在按下查看按钮后看到它。所以我使用arraylist收集登录对象并使用t:datatable列出值。我使用greybox javascript代码来显示内页

看起来像下图

enter image description here

您可以在第二页看到更新按钮。该更新按钮用于更新inputtext值中的已编辑值。但如果我点击更新按钮,则不会发生任何变化所以我只是调用了一个普通的支持bean方法,也没有调用。这是代码

查看其他jsp页面

<h:form>
<t:dataTable var="us" value="#{psgBean.userpassList}" rowIndexVar="rowid" styleClass="UserTable" id="psgLoginList" headerClass="UserTable_Header"
rowClasses="UserTable_Row1,UserTable_Row2"  columnClasses="UserTable_ColumnLeft">

<h:column>
<f:facet name="header" >
<t:outputText styleClass="table_header_value" value="S.No" /></f:facet> 
<h:inputText styleClass="text_box_content" value="#{rowid+1}" />
</h:column>                                                 

<h:column>
<f:facet name="header">
<t:outputText styleClass="table_header_value"
value="UserName" />
</f:facet>
<h:inputText styleClass="text_box_content"
value="#{us.username}" />
</h:column>


<h:column>
<f:facet name="header">
<t:outputText styleClass="table_header_value"
value="Password" />
</f:facet>
<h:inputText styleClass="text_box_content"
value="#{us.password}" />
</h:column>


<h:column>
<f:facet name="header">
<t:outputText styleClass="table_header_value"
value="Delete" />
</f:facet>
<h:commandButton value="Delete" action="#{psgBean.deletePsgLogin}">
<t:updateActionListener value="#{us}" property="#{psgBean.deletable1}"></t:updateActionListener>
<a4j:support ajaxSingle="true" reRender="psgLoginForm:psgLoginList"></a4j:support>
</h:commandButton>
</h:column>
</t:dataTable>
<h:commandButton value="Update" action="#{psgBean.saveClicking}">
    </h:commandButton>
<h:commandButton value="cancel" onclick="winclose()"></h:commandButton>
    </h:form>

这是托管bean中的方法

public String saveClicking()
{
    System.out.println("just checking");
    return null;
}

此方法未被调用。上面的代码只与表单标签一起出现。我认为问题在于灰盒代码。

/

1 个答案:

答案 0 :(得分:0)

我发现了错误。我将rowId(s.no)放在inputbox中,因为它是自动递增的,我们无法更新该值。