从托管bean中的方法返回值的正确方法是什么,表示成功SQL
DML
操作,例如INSERT
或UPDATE
根据我在线阅读的教程和一些博客,它说从ManagedBean
中包含的方法返回值的一个好方法是String
的{{1}}值或facelet
页面
(换句话说,视图)重定向到网页。
喜欢这个。
原始版本:
.xhtml
如果我想知道@ManagedBean(name="myBean")
public class MyBean{
public String register(){
String SQL = "INSERT INTO myTable(col1,col2) VALUES(?,?);
PreparedStatement ps = connection.prepareStatement(SQL);
ps.setString(1,someStringVariable1);
ps.setString(2,someStringVariable2);
ps.executeUpdate();
return "index"; //pointing to index.xhtml
}
}
方法是否成功,该怎么办?
我以为我只是将其改为
已修改版本:
executeUpdate()
但是,在修改后的版本中,我返回了 public int register(){
int isSuccessful = 0;
try{
String SQL = "INSERT INTO myTable(col1,col2) VALUES(?,?);
PreparedStatement ps = connection.prepareStatement(SQL);
ps.setString(1,someStringVariable1);
ps.setString(2,someStringVariable2);
isSuccessful = ps.executeUpdate();
}
return isSuccessful;
}
,根据int
与JSF
的合作方式,我认为这是不正确的(请更正我)如果我错了)
我问道,因为我说 Twitter Bootstrap ManagedBean
有以下内容。
modal
我需要能够在<div class="modal-body">
<h:form>
//....some code here...
<h:commandButton value="Submit" action=#{myBean.register()}
<h:outputText value=" #{myBean.whatToPutHere_ToKnowIf_addData()wasSuccessful}" />
</h:form>
</div>
modal
内显示div
执行成功。
实现这一目标的最简单,最正确的方法是什么?
我读到register()
会有所帮助,但我现在对AJAX
知之甚少,所以对此可能有一个简单的解决办法。
我很感激任何帮助。
谢谢。
答案 0 :(得分:0)
您可以使用bean变量:
@ManagedBean(name="myBean")
public class MyBean {
private boolean isSuccessful = false;
public boolean isSuccessful() { return isSuccessful; }
public String register(){
isSuccessful = ...
}
}
和你的xhtml
....
<h:commandButton value="Submit" action="#{myBean.register()}" />
<f:ajax execute="@form" render="outtext" />
</h:commandButton>
<h:panelGroup id="outtext">
<h:outputText value="any Text" rendered="#{myBean.successful} />
</h:panelGroup>
</h:form>