Avatar billede tokai Nybegynder
21. marts 2010 - 13:58 Der er 12 kommentarer

problemer med jsp:usebean

<jsp:useBean id="links" class="java.util.ArrayList<java.lang.String>" scope="session"></jsp:useBean> får følgende fejlbesked

org.apache.jasper.JasperException: /front.jsp(14,0) The value for the useBean class attribute java.util.ArrayList<java.lang.String> is invalid.
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1217)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3383)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:216)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:
Avatar billede arne_v Ekspert
21. marts 2010 - 14:16 #1
Brug den raw version:

<jsp:useBean id="links" class="java.util.ArrayList" scope="session"></jsp:useBean>
Avatar billede arne_v Ekspert
21. marts 2010 - 14:16 #2
Og det er ikke så slemt, fordi EL er alligevel ikke type safe.
Avatar billede tokai Nybegynder
21. marts 2010 - 14:23 #3
hvad pokker er el ? nysgerrig
tokai
Avatar billede arne_v Ekspert
21. marts 2010 - 14:31 #4
EL er når du f.eks. udskriver med ${noget}
Avatar billede arne_v Ekspert
21. marts 2010 - 14:36 #5
Eksempel:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.*" %>
<%
// just for test
List data = new ArrayList();
data.add("A");
data.add("BB");
data.add("CCC");
request.setAttribute("data", data);
%>
<c:forEach var="o" items="${data}">
${o}<br>
</c:forEach>
<hr>
<c:forEach var="i" begin="0" end="2">
${data[i]}<br>
</c:forEach>
Avatar billede arne_v Ekspert
21. marts 2010 - 14:38 #6
Jeg undrer mig iøvrigt lidt over at du bruger ArrayList i en useBean - normalt bruger man useBean og setProperty med custum bean klasser.
Avatar billede tokai Nybegynder
21. marts 2010 - 14:40 #7
Jeg undrer mig iøvrigt lidt over at du bruger ArrayList i en useBean - normalt bruger man useBean og setProperty med custum bean klasser.


please lad mig se et kode eksempel
Avatar billede arne_v Ekspert
21. marts 2010 - 14:41 #8
Enmed en lidt pænere udgave af #2 som en ny #3:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ page import="java.util.*" %>
<%
// just for test
List data = new ArrayList();
data.add("A");
data.add("BB");
data.add("CCC");
request.setAttribute("data", data);
%>
<c:forEach var="o" items="${data}">
${o}<br>
</c:forEach>
<hr>
<c:forEach var="i" begin="0" end="2">
${data[i]}<br>
</c:forEach>
<hr>
<c:forEach var="i" begin="0" end="${fn:length(data)-1}">
${data[i]}<br>
</c:forEach>
Avatar billede arne_v Ekspert
21. marts 2010 - 14:41 #9
Jeg prøver ligt at lave et eksempl med en custom bean.
Avatar billede arne_v Ekspert
21. marts 2010 - 14:58 #10
Bean klasse:

package test;

public class Data {
    private int a;
    private String b;
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public String getB() {
        return b;
    }
    public void setB(String b) {
        this.b = b;
    }
}
Avatar billede arne_v Ekspert
21. marts 2010 - 14:58 #11
JSP side:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="data" class="test.Data" scope="request"/>
<jsp:setProperty name="data" property="*"/>
<c:if test='${data.b != null}' >
<p>Du indtastede ${data.a} og ${data.b} !</p>
</c:if>
<form>
A: <input type="text" name="a"/>
<br/>
B: <input type="text" name="b"/>
<br/>
<input type="submit" value="Send"/>
</form>
Avatar billede arne_v Ekspert
26. april 2010 - 03:19 #12
all set ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester