如何使用Ajax侦听器保存或更新单个inputText字段 [英] How save or update single inputText field using ajax listener

查看:107
本文介绍了如何使用Ajax侦听器保存或更新单个inputText字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经花了更多的时间来做好在inputtext字段中保存或更新问题的工作,我直截了当地指出: 我有一些基本属性的基本单一输入文本

I spent already more time as is good about some saving or updating issue in inputtext field, i go right to the point: i have basic single input text with some basic attributtes

<h:inputText id="name" value="#{salesController.selectedSalesName}" />

这是inputText值的吸气剂

here is a getter for inputText value

public String getSelectedSalesName(){
    for(DealerListView dealer : dealerList){
        if(dealer.getDealerId() == getSelectedDealerId()){
            return dealer.getName();
        }
    }
    return "";  
}   

我在那里使用ajax标签

nested in there i use ajax tag

<f:ajax event="change" render="name" listener="#{salesController.updateSelectedSalesName()}" />

这是用于更新输入文本字段的back bean方法

a here is back bean method for updating a input text field

public void updateSelectedSalesName() {     

        DealerData dealDat = BeanFactory.getHotelDAOService(DealerData.class).findOne(selectedDealerId);
        dealDat.setName(name);
        BeanFactory.getHotelDAOService(DealerData.class).update(dealDat);     
}

整个结果是堆栈跟踪,显示为

whole result of this is stack trace which say

value =#{salesController.selectedSalesName}":属性'selectedSalesName'在sk.hotel.web.controller.SalesController类型上不可写

value="#{salesController.selectedSalesName}": Property 'selectedSalesName' not writable on type sk.hotel.web.controller.SalesController

我知道该getter方法需要进行一些更改,但是请尝试一些没有结果的组合,这些组合会使corect更新数据库的值.

I know that something changes is need for that getter method but try some combinations without result which make corect update of value to database.

(我不使用任何命令按钮进行提交,仅在该inputText字段中按Enter时更新响应.) 我想要一些指南,无论是在back-bean还是jsf布局上,如何都可以修改此保存/更新过程 也许有人已经解决了类似的情况,并可以分享他的解决方案.

(I dont use any commands buttons for submit,update only response on pressing Enter in that inputText field.) I want some guide how can be modified this save/update process whether on back-bean or jsf layout or maybe someone solved similar situation already,and can share his solution.

谢谢大家的建议. 问候和美好的一天

Thanks all of you for advice posts. Regards and nice day

推荐答案

首先,添加一个字段:

  String selectedSalesName;

添加二传手和二传手:

  public String getSelectedSalesName() {
     return selectedSalesName;
  }
  public void setSelectedSalesName(String selectedSalesName) {
     this.selectedSalesName = selectedSalesName;
  }

添加ajaxListener(AjaxBehaviurEvent事件)以创建新的交易商或更新当前的交易商

Add a ajaxListener(AjaxBehaviurEvent event) to create a new Dealer or Update current Dealer

  public void ajaxListener(AjaxBehaviorEvent event) {
     Dao dao = BeanFactory.getHotelDAOService(DealerData.class)
     if (selectedDealerId == null) {
        DealarData dealerData= new DealerData();
        dealerDate.setName(getSelectedSalesName());
        dao.add(dealerData);
        setDealer(dealerData);
     } else {
        DealerData dealDat = dao.findOne(selectedDealerId);
        dealDat.setName(name);
        dao.update(dealDat);
     }
  }

当前经销商的设置者

  int selectedDealerId;
  public void setDealer(DealerData dealer) {
        selectedDealerId = dealer.getId();
        selectedSalesName = dealer.getName();
  }

和xhtml页面:

  <h:inputText value="#{salesController.selectedSalesName}" id="idSalesInput">
        <a4j:ajax event="keyup" listener="#{salesController.ajaxListener}" 
               execute="idSalesInput"/>
  </h:inputText>

更改您要收听的事件的键".

Change "keyup" for the event you want to listen.

当您按下一个键时,将调用侦听器,并提交idSalesInput的值(在此调用setSelectedSalesName()方法,因此,您获得了属性"selectedSalesName"不可写的异常),并创建了侦听器或更新新的DealerData.

When you press a key, the listener is called, and the value of idSalesInput is submitted (the setSelectedSalesName() method is called here, for this reason you got the Property 'selectedSalesName' not writable exception),and the listener create or update a new DealerData.

祝您有美好的一天,对不起我的英语不好!

Have a nice Day and sorry for my bad english!

这篇关于如何使用Ajax侦听器保存或更新单个inputText字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆