2013-02-15 2 views
0
내가 Tomcat6.0를 사용하고

, 내가 followeing예상치 못한 재스퍼는 예외

<% 
List<String> options = new ArrayList<String>(); 
DynamicCombo comboBox = new DynamicCombo(); 
options = comboBox.generateComboBox(); 
Collections.sort(options); 
int tempVar = 0; 
while (tempVar < options.size()) { 
out.print("<option value=\""); 
out.print(options.get(tempVar)); 
out.print("\">"); 
out.print(options.get(tempVar)); 
out.print("</option>"); 
tempVar++; 
} 
%> 

DynamicCombo과 같은 코드를 SDE 웹 개발자를위한 7.0 익스프레스, 내 JSP 페이지에서 JDK1.6

이클립스 패키지 com.ems.billGen.util 내부 클래스입니다 그리고 난으로 적절하게 JSP에서이 패키지를 수입하고있다 : -)

<%@page import="com.ems.billGen.util.*" %> 

이 클래스 DynamicCombo이 generateComboBox (라는 이름의 메소드를 가지고 단순히 문자열 목록을 만들고이 문자열을 반환합니다.

위의 JSP에서 DynamicCombo 클래스 위로 마우스를 가져 가면 클래스에 대한 적절한 문서를 얻었 기 때문에 잘 인식됩니다. 아래 스크린 샷을 참조하십시오 : - JSP 파일 36 :

오류 라인에서 발생 -이 on hovering over the class name in the jsp file

을 지금은 위의 페이지를 배포하고 파이어 폭스에서 볼 때, 나는 다음과 같은 벽옥 예외가 : /implementation.jsp

DynamicCombo cannot be resolved to a type 
33:  <td><select name="product_list"> 
34:   <% 
35:    List<String> options = new ArrayList<String>(); 
36:    DynamicCombo co = new DynamicCombo(); 
37:    options = co.generateComboBox(); 
38:    Collections.sort(options); 
39:    int tempVar = 0; 

이 문제를 해결하는 방법과 이유를 알 수 없습니다. 모든 입력을 부탁드립니다.

각각의 클래스 파일은 또한 전쟁 파일의 WEB-INF 폴더에 DynamicCombo 생성되고있다 : - class file is actually present in the generated war file

+0

오류 메시지가 분명합니다. 어쩌면 오타가 있거나 수업에없는 패키지 일 수 있습니다. 그런데 스크립틀릿 사용을 중단하려면 코드를 리팩터링해야합니다. [JSP- 파일에서 Java 코드를 피하는 방법?] (http://stackoverflow.com/q/3177733/1065197) –

+0

답장을 보내 주셔서 감사합니다. 그래, 오류 메시지가 분명하다는 것을 이해해야합니다. 그러나 그 이유는 아닙니다. 나는 오타가 없다고 확신하기 때문에. 또한 위에서 언급했듯이 클래스가 가져 오는 각각의 패키지에 있음을 확인했습니다. 생각해 줘서 고마워. 당신이 제공 한 링크를 통해 갈 것입니다. – qre0ct

+0

아마도 클래스가 없기 때문에 생성 된 war 파일 (프로젝트가 아닌)에서 클래스를 확인해야합니다. –

답변

3

오류 메시지가 모든 것을 말해 및 스크린 샷을 확인 : 같은 클래스가 존재하지 않습니다 올바른 길에.

문제는 미묘합니다. com.ems.billGen.util.DynamicCombo을 가져오고 클래스 경로는 com/ems/billgen/util/DynamicCombo.class입니다 (경로 이름에 대문자 G와 패키지 이름이 없음).

아마도 툴링의 일부 오류 일 수 있습니다. 이 오류는 Java 규약 (즉, never to use capital letters in package names)을 따르지 않는다는 사실에 기인합니다.

+0

+1 : 이것은 JSP에서 스크립틀릿을 사용할 때 만들 수있는 몇 가지 큰 오류를 증명합니다. –

+0

@LuiggiMendoza : 흠 ... +1을 주셔서 감사합니다. 그러나이 특정 오류의 경우 필자는 를 사용하면 실수는 <% @ page import = "com.ems.billGen.util.DynamicCombo"%>보다 뚜렷합니까? 실질적으로 똑같아 보입니다 ... – fdreger

+0

실제로 서블릿에서 'DynamicCombo'의 데이터를 처리하고 정렬 된 목록을 요청 속성으로 저장 한 다음 ''을 눌러 드롭 다운 목록을 채우십시오. 이걸 사용하면'' 태그를 사용할 필요가 없습니다. –