하나의 매개 변수를 취할 수있는 사용자 정의 태그를 정의한 다음 숫자를 사용하여 정보를 찾아 반환합니다. 하지만 계속 NumberFormatException이 발생합니다. EL을 사용하여 jsp에서 태그에 번호를 전달하고 있습니다.NumberFormatException을 제공하는 사용자 정의 태그에 값 전달
내 사용자 정의 태그 핸들러에서private int id;
private void setId(int id){
this.id = id;
}
private int getId(){
return id;
}
: 내 TLD에서
private int id;
//getters and setters for id
public int doStartTag() throws JSPException {
//Does some stuff with id
}
(생략 물건) :
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
행동 빈 클래스에서
<my:myTag id="${action.id}"/>
태그는 마비를 그냥 지나치면 내가 원하는대로 행동합니다. er in (ie, id = "6")하지만 EL 표현식 값을 사용할 때 항상 예외를 던집니다. 표현식을 평가할 때 어딘가에서 int-string 변환이 발생합니까? 그것은 콩의 int 필드이며, 나는 그것을 그대로 통과 할 것이라고 생각 했습니까? 내 태그 처리기의 특성을 String 및 Integer로 변경하려고 시도했지만 어느 것도이를 해결하지 못했습니다. rtexprvalue를 true로 설정하여 정상적으로 평가해야합니다. 어떤 도움을 주셔서 감사합니다.
정확하게 널 포인터 예외가 발생합니까? –
어떤 JSP 엔진과 버전이 있습니까? 이전 버전의 JSP 스펙에는 JSP 컴파일러 단계에서 EL 구문 분석/평가가 포함되지 않았으므로 태그가 수동으로 표현식을 평가해야했습니다. – Tim
@Tim Thanks. 이것은 올바른 방향으로 나를 가리켰으며 실제로 태그 처리기에서 수식을 수동으로 평가해야한다는 것이 었습니다. 이 질문에 답을하고 싶다면 받아 들일 것입니다. – Paul