nasıl

2011-08-24 22 views
10
<% 
    String fname=request.getParameter("fname"); 
    String username=getVal("lname"); 
%> 
<%! 
    private String getVal(String param){ 
     return request.getParameter("fname"); 

} 
%> 
/* 

--err 



org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP 

PWC6197: An error occurred at line: 5 in the jsp file: /register.jsp 
PWC6199: Generated servlet error: 
string:///register_jsp.java:12: cannot find symbol 
symbol : variable request 
location: class org.apache.jsp.register_jsp 
/* 

cevap

21

JSP, JSP sayfasını java kodunu otomatik olarak oluşturan bir sunucuya dönüştürecek bir JSP derleyicisinden geçer.

JSP yönergeleri, JSP derleyicisine neyin nereye yazılacağını bildirir. <% %> (JSP scriptletleri olarak adlandırılır) içindeki her şey, oluşturulan sunucu uygulamasının service() yönteminin içine yerleştirilir. <%! %> (JSP bildirimleri olarak adlandırılır) içindeki her şey oluşturulan sunucu uygulamasının gerçek sınıfının bir parçası olur, böylece getVal() öğeniz bir örnek yöntemi olur.

standart request (session ve pageContext vb ve) Nesne örnekleri service() yöntem içinde tanımlandığı gibidir, böylece bunlar, aslında, JSP komut dosyası bölümlerinin içinde sadece mevcut. Örneğin, Tomcat üzerinde çalışıyorsanız, Tomcat kurulumunda "iş" dizininin içine bakarsanız, JSP sayfalarınız için oluşturulan Java kodunu inceleyebilirsiniz. "Başlık altında" olup bitenler hakkında daha iyi bir resim elde edemezseniz, ilginç olabilir.

14

talep komut dosyası ifadeleri içinde erişilebilir JSP bir fonksiyonu olan "istek" nesne kullanımı. Eğer kendi yöntemleri kullanılabilir olmasını istiyorsanız, bir argüman olarak ilan gerekir: scriptlets kullanarak ve ilk etapta JSP'lerde istek parametreleri elde edilmemelidir

<% 
    String fname = request.getParameter("fname"); 
    String username = getVal("lname", request); 
%> 
<%! 
    private String getVal(String param, HttpServletRequest request) { 
     return request.getParameter("fname"); 
    } 
%> 

Not. JSP'ler biçimlendirme oluşturmak için kullanılmalıdır. Bir servlet/eylemde işlenmesini yapın, talep kapsamına fasulye oluşturarak ve doldurarak JSP tarafından görüntülenecek verileri hazırlayın ve ardından JSP EL, JSTL ve diğer özel etiketleri yalnızca kullanması gereken bir JSP'ye gönderin.