java.lang.IllegalArgumentException : 릴리스 관리

세로토닌 체이스

내 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:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jstl/core"
      >
    <h:head>
        <!-- <h:outputStylesheet library="css" name="table-style.css"  /> -->
    </h:head>

    <h:body>

        <h1>category</h1>
        <h:form id="form">
            <h:panelGrid columns="1">
                <c:forEach items="#{categoryBean.parentCategoryList}" var="cat">
                    <h:panelGroup>
                        <h:outputText value="#{cat.name}"/>
                        <h:commandButton value="+" type="button" onclick="expand('#{cat.name}');"/>
                    </h:panelGroup>
                    <h:panelGroup>
                        <h:selectManyCheckbox id="#{cat.name}" style="display: none" value="#{categoryBean.selectedCategoryList}">
                            <f:selectItems value="#{categoryBean.getSubCategoryList(cat.id)}" var="sub" itemLabel="#{sub.name}" itemValue="#{sub.name}"/>
                        </h:selectManyCheckbox>
                    </h:panelGroup>
                </c:forEach>
            </h:panelGrid>
            <h:commandButton value="Submit" action="result" />
            <h:commandButton value="Reset" type="reset" />
        </h:form>

        <script type="text/javascript">
            function expand(cat) {
                var name = "form:" + cat;
                alert(name);
                var element = document.getElementById(name);
                if(element.style.display == 'block') {
                  element.value = "-";
                  element.style.display = 'none';
                } else {
                  element.value = "+";
                  element.style.display = 'block'
                }
            }
        </script>   
    </h:body>
</html>

내 관리 빈

package com.gtp.iqp.presentation.managedBeans;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.gtp.iqp.business.bo.Category;
import com.gtp.iqp.business.delegate.CategoryDelegate;

@SuppressWarnings("serial")
@Component
public class CategoryBean extends BaseManagedBean {

    @Autowired
    private CategoryDelegate categoryDelegate;
    private List<Category>   parentCategoryList;
    private List<String>     selectedCategoryList;

    public CategoryDelegate getCategoryDelegate() {
        return categoryDelegate;
    }
    public void setCategoryDelegate(CategoryDelegate categoryDelegate) {
        this.categoryDelegate = categoryDelegate;
    }
    public List<Category> getParentCategoryList() {
        parentCategoryList = categoryDelegate.getParentCategories();
        return parentCategoryList;
    }
    public void setParentCategoryList(List<Category> parentCategoryList) {
        this.parentCategoryList = parentCategoryList;
    }
    public List<String> getSelectedCategoryList() {
        return selectedCategoryList;
    }
    public void setSelectedCategoryList(List<String> selectedCategoryList) {
        this.selectedCategoryList = selectedCategoryList;
    }
    public List<Category> getSubCategoryList(long parent) {
        return categoryDelegate.getSubCategories(parent);
    }

}

내 문제

<f:selectItems value="#{categoryBean.getSubCategoryList(cat.id)}"/>

위의 selectItems 문은 데이터베이스에서 목록을 가져올 수 있습니다. 관리 빈에 목록이 포함되어 있음을 알 수 있습니다. 그러나 컨트롤이 xhtml 페이지로 전송되면 표시되지 않습니다. 다음 예외가 표시됩니다.

Hibernate: select this_.id as id1_1_0_, this_.name as name2_1_0_, this_.parent as parent3_1_0_ from category this_ where this_.parent=?
Hibernate: select this_.id as id1_1_0_, this_.name as name2_1_0_, this_.parent as parent3_1_0_ from category this_ where this_.parent=?
Hibernate: select this_.id as id1_1_0_, this_.name as name2_1_0_, this_.parent as parent3_1_0_ from category this_ where this_.parent=?
Dec 13, 2013 2:56:06 PM com.sun.faces.context.ExceptionHandlerImpl log
FATAL: JSF1073: java.lang.IllegalArgumentException caught during processing of RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=Release Management
Dec 13, 2013 2:56:06 PM com.sun.faces.context.ExceptionHandlerImpl log
FATAL: Release Management
java.lang.IllegalArgumentException: Release Management
    at javax.faces.component.UIComponentBase.validateId(UIComponentBase.java:592)
    at javax.faces.component.UIComponentBase.setId(UIComponentBase.java:412)
    at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.assignUniqueId(ComponentTagHandlerDelegateImpl.java:373)
    at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:176)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    at com.sun.faces.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:230)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
    at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
    at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:980)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

누군가 내가 뭘 잘못하고 있으며 어떻게 고칠 수 있는지 말해 줄 수 있습니까?

BalusC

스택 추적의 맨 윗줄에있는 클래스 / 메소드 이름을 자세히 살펴보면 좋은 라이브러리에는 자체 설명 클래스 / 메소드 이름이 있습니다.

java.lang.IllegalArgumentException: Release Management
    at javax.faces.component.UIComponentBase.validateId(UIComponentBase.java:592)
    at javax.faces.component.UIComponentBase.setId(UIComponentBase.java:412)

따라서 idUI 구성 요소를 설정하는 동안 발생했습니다 . ID가 확인 중이며 유효하지 않은 것으로 간주됩니다. 실제로 javadoc에Release Management 따라 유효하지 않은 내부 공간이 있습니다 .

이 UIComponent의 컴포넌트 식별자 (있는 경우)를 설정합니다. 구성 요소 식별자는 다음 구문 제한을 따라야합니다.

  • 길이가 0 인 문자열이 아니어야합니다.
  • 첫 번째 문자는 문자 또는 밑줄 ( '_')이어야합니다.
  • 후속 문자는 문자, 숫자, 밑줄 ( '_') 또는 대시 ( '-') 여야합니다.

HTML 요소 ID의 공백도 HTML 사양 에 따라 유효하지 않습니다 (알다시피 JSF는 기본적으로 HTML 코드 생성기이며 물론 HTML 사양을 준수해야합니다).

ID 및 NAME 토큰은 문자 ([A-Za-z])로 시작해야하며 그 뒤에 문자, 숫자 ([0-9]), 하이픈 ( "-"), 밑줄 ( "_")이 올 수 있습니다. , 콜론 ( ":") 및 마침표 ( ".").

범인은 다음과 같습니다.

<h:selectManyCheckbox id="#{cat.name}" ...>

이 특별한 경우에는 기본적으로 두 가지 옵션이 있습니다.

  1. 용도 <h:dataTable>대신을 <h:panelGrid><c:forEach>, 그것은 행 인덱스로 시작 자동 생성 된 ID를받을 수 있습니다 :

    <h:dataTable value="#{categoryBean.parentCategoryList}" var="cat">
        <h:column>
            <h:outputText value="#{cat.name}"/>
            <h:commandButton value="+" type="button" onclick="expand('#{cat.name}');"/>
            <br/>
            <h:selectManyCheckbox id="name" style="display: none" value="#{categoryBean.selectedCategoryList}">
                <f:selectItems value="#{categoryBean.getSubCategoryList(cat.id)}" var="sub" itemLabel="#{sub.name}" itemValue="#{sub.name}"/>
            </h:selectManyCheckbox>
        </h:column>
    </h:dataTable>
    
  2. 에서 증분 숫자 접미사가있는 고정 접두사를 사용합니다 <c:forEach varStatus>.

    <h:panelGrid columns="1">
        <c:forEach items="#{categoryBean.parentCategoryList}" var="cat" varStatus="loop">
            <h:panelGroup>
                <h:outputText value="#{cat.name}"/>
                <h:commandButton value="+" type="button" onclick="expand('#{cat.name}');"/>
            </h:panelGroup>
            <h:panelGroup>
                <h:selectManyCheckbox id="name_#{loop.index}" style="display: none" value="#{categoryBean.selectedCategoryList}">
                    <f:selectItems value="#{categoryBean.getSubCategoryList(cat.id)}" var="sub" itemLabel="#{sub.name}" itemValue="#{sub.name}"/>
                </h:selectManyCheckbox>
            </h:panelGroup>
        </c:forEach>
    </h:panelGrid>
    

expand()필요한 경우 그에 따라 JS 함수 의 인수를 변경하는 것을 잊지 마십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

java.lang.IllegalArgumentException가 : 아니 관리되는 형식

분류에서Dev

Android : 릴리스 APK의 java.lang.NoClassDefFoundError

분류에서Dev

JPA-java.lang.IllegalArgumentException : [productName] 속성이 관리 유형에 없습니다.

분류에서Dev

Proguard를 사용한 Gradle 릴리스 빌드 : java.lang.IncompatibleClassChangeError 및 java.lang.NoSuchMethodError

분류에서Dev

java.lang.IllegalArgumentException가 : 인스턴스화 팩토리 클래스에 없습니다 org.springframework.boot.env.EnvironmentPostProcessor

분류에서Dev

Volley : [355] NetworkDispatcher.processRequest : 처리되지 않은 예외 java.lang.IllegalArgumentException

분류에서Dev

java.lang.IllegalArgumentException : 리디렉션 위치의 잘못된 문자 (CR / LF)

분류에서Dev

오이 : java.lang.IllegalArgumentException : 파일 또는 디렉토리 아님 : G : \ Codebase \ MavenCucumber \-plugin

분류에서Dev

Liberty Java Runtime-Websphere 릴리스 변경 관리

분류에서Dev

java.lang.IllegalArgumentException : provider = network

분류에서Dev

오류 : java.lang.IllegalArgumentException

분류에서Dev

java.lang.IllegalArgumentException 직면

분류에서Dev

java.lang.IllegalArgumentException 가져 오기 : org.hibernate.hql.internal.ast.QuerySyntaxException : 쿼리 실행 후 예기치 않은 토큰

분류에서Dev

clojure 웹 애플리케이션을 실행하려고 할 때 java.lang.IllegalArgumentException 발생

분류에서Dev

http 연결 오류 java.lang.IllegalArgumentException : 색인 76의 쿼리에 잘못된 문자가 있습니다.

분류에서Dev

예외 처리시 java.lang.IllegalArgumentException 메시지의 일부를 제거하는 방법

분류에서Dev

transver에 대한 노드는 null 일 수 없습니다 : java.lang.IllegalArgumentException을 제공하는 Hibernate 쿼리

분류에서Dev

Android java.lang.illegalargumentexception에서 기본 라이브러리를 찾을 수 없습니다.

분류에서Dev

java.lang.StackOverflowError : 스택 크기 8192KB 블루투스 관리자

분류에서Dev

Java : 잘못된 소스 릴리스 : 9

분류에서Dev

java.lang.IllegalArgumentException : WCF .SVC SOAP 웹 서비스를 사용하기 위해 ksoap2 라이브러리를 사용하는 크기 <= 0

분류에서Dev

java.lang.IllegalArgumentException : java.net.UnknownHostException : tmp

분류에서Dev

Freemarker 용 Spring 3.2.3 릴리스 Java 구성

분류에서Dev

java.lang.IllegalArgumentException : fromIndex (x)> toIndex (y)

분류에서Dev

PySpark pandas_udfs java.lang.IllegalArgumentException 오류

분류에서Dev

이상한 java.lang.IllegalArgumentException 예외

분류에서Dev

Caused by: java.lang.IllegalArgumentException: Host name may not be null

분류에서Dev

java.lang.IllegalArgumentException : 잘못된 base-64

분류에서Dev

ViewPager as listview row java.lang.IllegalArgumentException : No view found for id

Related 관련 기사

  1. 1

    java.lang.IllegalArgumentException가 : 아니 관리되는 형식

  2. 2

    Android : 릴리스 APK의 java.lang.NoClassDefFoundError

  3. 3

    JPA-java.lang.IllegalArgumentException : [productName] 속성이 관리 유형에 없습니다.

  4. 4

    Proguard를 사용한 Gradle 릴리스 빌드 : java.lang.IncompatibleClassChangeError 및 java.lang.NoSuchMethodError

  5. 5

    java.lang.IllegalArgumentException가 : 인스턴스화 팩토리 클래스에 없습니다 org.springframework.boot.env.EnvironmentPostProcessor

  6. 6

    Volley : [355] NetworkDispatcher.processRequest : 처리되지 않은 예외 java.lang.IllegalArgumentException

  7. 7

    java.lang.IllegalArgumentException : 리디렉션 위치의 잘못된 문자 (CR / LF)

  8. 8

    오이 : java.lang.IllegalArgumentException : 파일 또는 디렉토리 아님 : G : \ Codebase \ MavenCucumber \-plugin

  9. 9

    Liberty Java Runtime-Websphere 릴리스 변경 관리

  10. 10

    java.lang.IllegalArgumentException : provider = network

  11. 11

    오류 : java.lang.IllegalArgumentException

  12. 12

    java.lang.IllegalArgumentException 직면

  13. 13

    java.lang.IllegalArgumentException 가져 오기 : org.hibernate.hql.internal.ast.QuerySyntaxException : 쿼리 실행 후 예기치 않은 토큰

  14. 14

    clojure 웹 애플리케이션을 실행하려고 할 때 java.lang.IllegalArgumentException 발생

  15. 15

    http 연결 오류 java.lang.IllegalArgumentException : 색인 76의 쿼리에 잘못된 문자가 있습니다.

  16. 16

    예외 처리시 java.lang.IllegalArgumentException 메시지의 일부를 제거하는 방법

  17. 17

    transver에 대한 노드는 null 일 수 없습니다 : java.lang.IllegalArgumentException을 제공하는 Hibernate 쿼리

  18. 18

    Android java.lang.illegalargumentexception에서 기본 라이브러리를 찾을 수 없습니다.

  19. 19

    java.lang.StackOverflowError : 스택 크기 8192KB 블루투스 관리자

  20. 20

    Java : 잘못된 소스 릴리스 : 9

  21. 21

    java.lang.IllegalArgumentException : WCF .SVC SOAP 웹 서비스를 사용하기 위해 ksoap2 라이브러리를 사용하는 크기 <= 0

  22. 22

    java.lang.IllegalArgumentException : java.net.UnknownHostException : tmp

  23. 23

    Freemarker 용 Spring 3.2.3 릴리스 Java 구성

  24. 24

    java.lang.IllegalArgumentException : fromIndex (x)> toIndex (y)

  25. 25

    PySpark pandas_udfs java.lang.IllegalArgumentException 오류

  26. 26

    이상한 java.lang.IllegalArgumentException 예외

  27. 27

    Caused by: java.lang.IllegalArgumentException: Host name may not be null

  28. 28

    java.lang.IllegalArgumentException : 잘못된 base-64

  29. 29

    ViewPager as listview row java.lang.IllegalArgumentException : No view found for id

뜨겁다태그

보관