2012-12-16 105 views
0

在我的JSF应用程序中,我有一个包含多个inputtext组件的页面。当显示页面时,这些输入文本组件会填充来自数据库的数据。当我点击提交按钮时,我想将这些值作为参数传递给下一个facelet。jsf inputtext to bean

发生了什么事时,我打提交,旧的值被传递,而不是用户在已输入更新的值是这里是什么inputText的组成部分之一的样子:

  <div align="center"> 
       <h:outputLabel value="Product Quantity " /> 
       <h:inputText id="quantity" value="#{product.quantity}" /> 
      </div> 

然后,在提交按钮,我想获得的是,在用户类型的值:

   <h:button value="Save Edits" outcome="welcome"> 
        <f:param name="quantity" value="#{product.quantity}" />      
       </h:button> 

比方说,100是该字段被填充了原始数量。当用户将其更改为110并点击提交时,欢迎facelet仍认为100是值。有任何想法吗?

+0

你必须使用'h:commandButton'而不是一个普通的'h:button',这应该修复它! –

回答

1

是否有任何特别原因决定使用<h:button/>而不是<h:commandButton/>?因为这就是为什么你的参数不能够进入下一个页面

<h:commandButton/>过程这是包<h:form/>,提交的原因是内容的POST请求的服务器(在等的JSF处理生命周期踢),而<h:button/>将产生一个GET请求。 <h:button/>通常用于导航。坚持<h:commandButton/>如果你想做更多的导航

+0

就像一个侧栏,我有一个产品bean和一个ProductList bean在我的应用程序。 ProducList只有一个ArrayList 。我有应用程序设置,只允许用户将产品添加到数据库,并且我试图在一个表中显示它们。这些项目在数据库中,我可以看到它们,但由于某种原因,表格显示了2个int值,并且构成一个Product对象的2个字符串显示为空白,导致我相信产品正在被覆盖?它可能与范围有关吗? – user1154644

+0

@ user1154644如果没有看到代码,很难确定发生了什么,但是,支持bean的范围可能是原因。你是说在数据表中显示两行空行吗? – kolossus

+0

好吧,产品的属性是int,string,string,int。该表显示0为int列,空白为2个字符串列。你有什么建议吗?我认为现在ProuctList和Product beans没有任何范围注释,但我无法弄清楚是否应该让它们成为应用程序或查看范围。这只是一个几乎完成的学校任务,这是我无法想象的唯一的事情。 productlist是我正在迭代显示表的内容。 – user1154644