在视图中已经找到组件ID j_id?:name。

问题描述 投票:2回答:2

我的项目中存在HTTP状态500错误。我正在使用jsf spring和hibernate的集成。我不知道要解决这个问题。我已经添加了必要的jar文件。错误是:

description The server encountered an internal error () that prevented it from fulfilling this request.
exception: javax.servlet.ServletException: Component ID j_idt4:name has already been found in the view.  
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)

跟踪是:

</head>
<body>
<h1>اضافه کردن پرسنل جد?د</h1>

  +id: j_idt4
   type: javax.faces.component.html.HtmlForm@1810af25
    +id: j_idt5
     type: javax.faces.component.html.HtmlPanelGrid@cc4dacd
      +id: j_idt6
       type: 
              شماره پرسنل? : 

      +id: name
       type: javax.faces.component.html.HtmlInputText@6f5ab27a

personel.xhtml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>اطلاعات پرسنلی</title>
</head>
<body>
<h1>اضافه کردن پرسنل جدید</h1>
        <h:form>

            <h:panelGrid columns="6" dir="rtl">
              شماره پرسنلی : 
                <h:inputText id="name" value="#{personelMB.personel_id}" 
                    size="20" required="true"
                    label="id" >
                </h:inputText>
                نام : 
                <h:inputText id="name" value="#{personelMB.pname}" 
                    size="20" required="true"
                    label="Name" >
                </h:inputText>

                 نام خانوادگی: 
                <h:inputText id="family" value="#{personelMB.pfamily}" 
                    size="20" required="true"
                    label="family" >
                </h:inputText> 

                آدرس : 
                <h:inputTextarea id="address" value="#{personelMB.paddress}" 
                    cols="30" rows="10" required="true"
                    label="Address" >
                </h:inputTextarea>


          تلفن:  
                <h:inputText id="tel" value="#{personelMB.pphone}" 
                    size="20" required="true"
                    label="tel" >
                </h:inputText> 
            </h:panelGrid>

            <h:commandButton value="درج اطلاعات" action="#{personelMB.addPersonel()}" />

        </h:form>
</body>
</html>

请帮助我。

java jsf jakarta-ee tomcat jsf-2
2个回答
6
投票

您同时出现<h:inputTextid="name"。这些id在作为命名容器的最接近的父组件(例如数据表组件或表单)中应该是唯一的。


0
投票

您的代码有误。您的ID和名称“ inputtext字段”具有相同的值,即“名称”。

incorrect code 
<h:inputText id="**name**" value="#{personelMB.personel_id}" 
size="20" required="true"
label="id" >
</h:inputText>
نام : 
<h:inputText id="**name**" value="#{personelMB.pname}" 
            size="20" required="true"

正确的代码

<h:inputText id="**personeID**" value="#{personelMB.personel_id}" 
....
<h:inputText id="name" value="#{personelMB.pname}"
© www.soinside.com 2019 - 2024. All rights reserved.