Avatar billede andersbl Nybegynder
15. juli 2010 - 12:00 Der er 1 kommentar og
1 løsning

Bønne fejl (Unknown property 'adgangDK' on class 'class utilities.MenuAccess')

Hej Eksperter
Jeg har en jsp-side(A) som når man åbner den kører en java-metode der gerne skulle sætte nogle property i en bønne. Som jsp-siden(A) gerne skulle kunne hente ved hjælp af get-metoder.

Tror fejlen har noget at gøre med hvordan jeg sætter bønnen og er nok meget amatør fejl, men er lang tid siden jeg har leget med bønner.

Jeg har valgt at benytte mig af PropertyUtils.setProperty til at sætte bønne-værdierne fra java.

Når jeg forsøger at åbne siden får jeg følgende fejl.

java.lang.NoSuchMethodException: Unknown property 'adgangDK' on class 'class utilities.MenuAccess'
    at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2133)
    at org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:890)
    at test.adgang.authorized(adgang.java:36)
    at org.apache.jsp.test.runEVOA_jsp._jspService(org.apache.jsp.test.runEVOA_jsp:72)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

(...)

JSP-siden(a)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page language="java" contentType="text/html; charset=ISO-8859-1"%>
<%@ page import="java.util.*, utilities.*, java.text.NumberFormat" %>

<jsp:useBean id="dataBean" scope="session" class="utilities.MenuAccess">
</jsp:useBean>
<%@page import="test.adgang"%>
<html>
<head>
<title>run</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>

<%
test.adgang.authorized("ANDERS");

System.out.println("DK " +dataBean.getDK());
System.out.println("NO " +dataBean.getNO());
System.out.println("SE " +dataBean.getSE());
%>

</body>
</html>


=======================================
JAVA
=======================================
package test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.lang.reflect.InvocationTargetException;

import org.apache.commons.beanutils.PropertyUtils;

public class adgang {
    private String userId;
    public static void  main(String arg[]) {
    }
    public static void authorized(String userId) {
        Connection con = null;
        CallableStatement cstmt = null;

        ArrayList<String> countryAccess = new ArrayList<String>();
        try {
            con = getConnection();
            cstmt = con.prepareCall("{call XXX(?)}");
            cstmt.setString(1,userId);
            ResultSet rs = cstmt.executeQuery();
            while(rs.next()) {
                try {
                PropertyUtils.setProperty(u, "adgangDK", true);
            } catch (IllegalAccessException e) {
                          e.printStackTrace();
                    } catch (InvocationTargetException e) {
                            e.printStackTrace();
                      } catch (NoSuchMethodException e) {
                          e.printStackTrace();
                      }
            }
            con.commit();
            rs.close();
        }
        catch(Exception e) {
            con = null;
            e.printStackTrace();
        }
        System.out.println("SETTER BEAN");
    }
}

============================
JAVA bønne
=============================

package utilities;

public class MenuAccess implements java.io.Serializable {
    private static final long serialVersionUID = -8646942379008731464L;
   
    private boolean adgangDK;
    private boolean adgangSE;
    private boolean adgangNO;
   
    public MenuAccess() {
    }
   
    public boolean getDK() { return adgangDK;    }
    public void setDK(boolean adgangDK) {    System.out.println("SET: " +adgangDK); this.adgangDK = adgangDK; }
   
    public boolean getSE() { return adgangSE;    }
    public void setSE(boolean adgangSE) {    this.adgangSE = adgangSE; }
   
    public boolean getNO() { return adgangNO;    }
    public void setNO(boolean adgangNO) {    this.adgangNO = adgangNO; }
   
}
Avatar billede andersbl Nybegynder
15. juli 2010 - 13:26 #1
Har fundet ud af at problemet opstår pga. det er en boolean jeg prøver at sætte. Hvis jeg laver metoden om til String er der ikke nogen problemer.

Kan se jeg nu åbner siden og metoderne bliver sat, men når jeg prøver at hente værdierne er de "glemt" igen. Hvordan får jeg dem med over?
Avatar billede andersbl Nybegynder
15. juli 2010 - 19:04 #2
LUKKER
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