Свойство Javabean в JSP

  <jsp:getProperty name="user" property="email" />

У меня есть пользовательский класс с тремя переменными экземпляра: fname, lname, email. Но приведенный выше код не будет работать, если я не изменю свои переменные экземпляра точно на «firstName», «lastName» и «emailAddress» и, конечно, не изменю тег bean. Все это терпит неудачу, когда я пытался (пример ошибки: в bean-компоненте нет переменной «fname»): fname, fName, firName, emailAddr и т. д..

есть ли точное требование к именованию переменных?


person user3758745    schedule 16.07.2014    source источник


Ответы (2)


Я не знаю, что вы сделали, но поскольку у вас есть bean-компонент с тремя переменными экземпляра fname, lname, email. вы должны иметь getter and setters для них.

Затем в jsp вы должны сначала установить значение для свойств.

<jsp:useBean id="user" class="packageName.User" scope="request"/>
<jsp:setProperty property="fname" value="<%=firstName %>" name="user"/>
<jsp:setProperty property="lname" value="<%=lastName %>" name="user"/>
<jsp:setProperty property="email" value="<%=emailId%>" name="user"/>

Где firstName, lastName,emailId в этом случае я получаю из какой-то формы в scriptlet

Затем получите такие свойства.

<jsp:getProperty property="fname" name="user"/>
<jsp:getProperty property="lname" name="user"/>
<jsp:getProperty property="email" name="user"/>
person SparkOn    schedule 16.07.2014
comment
у меня есть сеттеры и геттеры и все требования, кроме jsp:setProperty в jsp. Почему, если я использую свойство = firstName, мне не нужно устанавливать свойство? это потому, что мои сеттеры и геттеры называются getFirstName, getLastName, getEmailAddress, что он предполагает, что мои экземпляры - это firstName, lastName, emailAddress? - person user3758745; 16.07.2014
comment
Я не совсем понимаю, что вы пытаетесь сказать, но если вы измените имена, а также если вы не установите или не инициализируете свойства со значением, как вы можете получить значения - person SparkOn; 16.07.2014
comment
свойства были инициализированы/добавлены в сервлет. мой jsp просто вызывает его из сеанса. Это означает, что если я изменю свою переменную экземпляра User на firstName и сделаю ‹jsp:getProperty name=user property=firstName/›, тогда это сработает, но если я изменю свою переменную экземпляра на fname и сделаю ‹jsp:getProperty name=user property= fname/› говорит, что для bean-компонента нет переменной fname. - person user3758745; 17.07.2014

Требований нет. Убедитесь, что в полях вашего bean-компонента установлены имена, которые вы ожидаете на своей JSP-странице. Если у вас есть геттеры и сеттеры, вы также должны убедиться, что они обновлены.

person JQ-    schedule 16.07.2014