大家好,我是JSF-Hibernate的新手。我的数据库中有一个名为“Personels”的表,我使用一个函数从那里获取记录,并显示在“listallPersonels.xhtml”页面上。我在每个姓氏旁边都有一个链接,当点击它时,点击的行应该转到可编辑区域。我有布尔变量来保存每个记录的值。除了可编辑区域链接外,所有的东西都是工作的。点击它,什么都没有改变。“editable”的值不会从“false”变为“true”。我的代码在这里,问题出在哪里?谢谢...
My ManagedBean-PersonelMB;
@ManagedBean
@SessionScoped
public class PersonelMB implements Serializable{
/**
* Creates a new instance of PersonelMB
*/
public PersonelMB() {
}
private int personelid;
private String personelname,personelsurname;
public int getPersonelid() {
return personelid;
}
public void setPersonelid(int personelid) {
this.personelid = personelid;
}
public String getPersonelname() {
return personelname;
}
public void setPersonelname(String personelname) {
this.personelname = personelname;
}
public String getPersonelsurname() {
return personelsurname;
}
public void setPersonelsurname(String personelsurname) {
this.personelsurname = personelsurname;
}
private NewHibernateUtil hu;
private Session s;
private Personels personel;
private List<Personels> plist;
public List<Personels> getAllPersonelsFromDatabase(){
plist=new ArrayList<>();
s=hu.getSessionFactory().openSession();
s.beginTransaction();
Query qu=s.createQuery("from Personels");
plist=qu.list();
s.getTransaction().commit();
s.close();
return plist;
}
public String addRecord(){
Personels p=new Personels();
p.setPersonelName(personelname);
p.setPersonelSurname(personelsurname);
s=hu.getSessionFactory().openSession();
s.beginTransaction();
s.save(p);
s.getTransaction().commit();
s.close();
p=null;
personelname="";
personelsurname="";
return "success";
}
public String editRecord(Personels p){
p.setEditable(true);
return null;
}
public String saveAlteration(Personels pr){
for(Personels pers:mylist)
pers.setEditable(false);
s=hu.getSessionFactory().openSession();
s.beginTransaction();
s.update(pr);
s.getTransaction().commit();
s.close();
return null;
}
public String deleteRecord(Personels p){
s=hu.getSessionFactory().openSession();
s.beginTransaction();
s.delete(p);
s.getTransaction().commit();
s.close();
return "deleted";
}
}
我的Java类-Personels.Java
public class Personels implements java.io.Serializable {
private Integer personelId;
private String personelName;
private String personelSurname;
public Personels() {
}
public Personels(String personelName, String personelSurname) {
this.personelName = personelName;
this.personelSurname = personelSurname;
}
public Integer getPersonelId() {
return this.personelId;
}
public void setPersonelId(Integer personelİd) {
this.personelId = personelİd;
}
public String getPersonelName() {
return this.personelName;
}
public void setPersonelName(String personelName) {
this.personelName = personelName;
}
public String getPersonelSurname() {
return this.personelSurname;
}
public void setPersonelSurname(String personelSurname) {
this.personelSurname = personelSurname;
}
boolean editable;
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
}
}
<h:form>
<h:panelGrid columns="2">
<f:facet name="Personel Register Form"/>
<h:outputLabel value="NAME: "/>
<h:inputText value="#{personelMB.personelname}"/>
<h:outputLabel value="SURNAME: "/>
<h:inputText value="#{personelMB.personelsurname}"/>
<h:commandButton value="Reset" type="reset"/>
<h:commandButton value="Save" type="submit" action="#{personelMB.addRecord()}"/>
</h:panelGrid>
<h:commandLink value="List All Personels" action="listallpersonels.xhtml"/>
</h:form>
我的ListallPersonels.xhtml;
<h:form>
<h:dataTable value="#{personelMB.getAllPersonelsFromDatabase()}" var="p" >
<h:column>
<f:facet name="header">NAME</f:facet>
<h:inputText value="#{p.personelName}" rendered="#{p.editable}" size="15"/>
<h:outputText value="#{p.personelName}" rendered="#{not p.editable}"/>
</h:column>
<h:column>
<f:facet name="header">SURNAME</f:facet>
<h:outputText value="#{p.personelSurname}" rendered="#{not p.editable}"/>
<h:inputText value="#{p.personelSurname}" rendered="#{p.editable}" size="15" />
</h:column>
<h:column>
<f:facet name="header">DELETE</f:facet>
<h:commandLink value="Delete" action="#{personelMB.deleteRecord(p)}"/>
</h:column>
<h:column>
<f:facet name="header">EDIT</f:facet>
<h:commandLink value="Edit" action="#{personelMB.editRecord(p)}"
rendered="#{not p.editable}"/>
<h:commandButton value="Save Alteration" action="#{personelMB.saveAlteration(p)}"
rendered="#{p.editable}" />
</h:column>
</h:dataTable>
</h:form>
你应该看看primefaces,它有一些特征。你应该找到一些答案来回答你的问题。
http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml
然后试试这样的方法
<p:dataTable value="#{personelMB.getAllPersonelsFromDatabase()}" var="p" editable="true" editMode="cell" widgetVar="cellP">
问题内容: 如果我想将cq5组件设置为在A页中可编辑但在B页中不可编辑,是否可以。 例如:在A页上,我有C组件,我们允许作者打开对话框并编辑该组件。但是我们不允许作者打开对话框来编辑页面B上的组件C。我尝试研究cq:EditConfig 链接,但这还不足以解决我的问题。 问题答案: 您可以在包含之前设置ComponentContext.BYPASS_COMPONENT_HANDLING_ON_IN
问题内容: 我想控制基于树中级别的TreeTableView的某些行的样式。如果此行是Table根目录的第一级子级的一部分,则使用并应用样式。样式工作正常,但我也想禁用这些行的复选框。我能够,但是这也禁用了TreeItem的扩展,并且似乎没有任何作用。 编辑:据我了解,表必须设置为可编辑的,然后默认情况下列是可编辑的。但是,如果我设置了,否则我永远都看不到任何效果。setEditable的描述似乎
背景 目前,我有一个解决方案,我在PDF中循环并在其中绘制黑色矩形。 所以我已经有了一个PDRectangle列表,它代表了我需要在pdf上填充/覆盖的正确区域,隐藏了我想要的所有文本。 问题所在 问题1:黑色矩形下方的文本很容易被复制、搜索或通过其他工具提取。 我通过展平我的pdf来解决这个问题(将其转换为图像,使其成为单层文档,黑色矩形不再被欺骗)。与此处描述的解决方案相同:使用pdfBox禁
我试图在Symfony中设置一个区域设置,除了我试图在布局文件中翻译或生成路线的地方,一切都很好。我创建了一个侦听器,这样我就可以在每个请求上设置区域设置。 } 如果在树枝模板中,我试图使用app.session.get('_locale')访问会话变量,该变量存储了它应该是的语言环境-我得到了所需的结果。但是当我尝试app.request.locale我得到默认的语言环境,而不是在网址。正因为如
是否可以使可单击但不可编辑。 我不希望它是可编辑的(键盘也不应该出现,我们也不应该改变提示) 实际上,我只想使用编辑文本作为带有提示的图像(不能更改)。我知道实际的方法是使用一个和一个,但我希望它尝试使用,因为这样我将只使用一个视图,而不是2个。而且每件事都是动态的,所以没有XML。 对于上述需求,XML中的解决方案是android:editable=“false”,但我想在Java中使用它。 但
问题内容: 我正在使用创建时间选择器。内的文字是可编辑的。但我想将设置为不可编辑,因为有机会给出无效的值。谁能帮我? 问题答案: 请尝试以下操作: 只要您自己没有通过调用更改微调器编辑器,此方法就应该起作用。 告诉我们这是否有帮助。