javax.el.PropertyNotFoundException: на странице JSP приложения Spring MVC - PullRequest
0 голосов
/ 28 июля 2011

У меня есть 2 таблицы в базе данных (аэропорты и остановки в пути).Я написал запрос на соединение SQL, чтобы получить набор результатов, содержащий поля из обеих таблиц.Чтобы отобразить результат, я создал пользовательский объект «VbResult».(В БД нет таблицы, соответствующей этому объекту домена)

Пожалуйста, найдите ниже код для объекта Домена, Контроллера и Представления: Когда я вызываю домашнюю страницу, я получаю исключение, хотя у меня есть поле ressrcв классе VbResult.

(или) Неправильно ли использовать пользовательский объект в качестве VbResult - просто ради View, для которого нет таблицы?

Я застрял надолго .. Что мне здесь не хватает!Пожалуйста, дайте мне знать!

Заранее спасибо

javax.el.PropertyNotFoundException: свойство 'ressrc' не найдено для типа com.datacaliper.vbuddy.domain.VbResult

Доменный объект: VbResult

public class VbResult implements java.io.Serializable{  
private static final long serialVersionUID = -3606761414209638631L;  
private Integer resid;  
private String resairline;  
private String resemail;  
private String ressrc;  
private String resdes;  
//private String res_airline;     

public VbResult(){  }  

public VbResult(Integer id, String airline, String email,  
        String source, String destination) {  
    this.resid= id;  
    this.resairline = airline;  
    this.resemail = email;  
    this.ressrc = source;  
    this.resdes = destination;  
}  

public Integer getId() {  
    return this.resid;  
}  
public void setId(Integer id) {  
    this.resid = id;  
}  
public String getAirline() {  
    return this.resairline;  
}  
public void setAirline(String airline) {  
    this.resairline = airline;  
}  
public String getEmail() {  
    return this.resemail;  
}  
public void setEmail(String email) {  
    this.resemail = email;  
}  
public String getSource() {  
    return this.ressrc;  
}  
public void setSource(String source) {  
    this.ressrc = source;  
}  
public String getDestination() {  
    return this.resdes;  
}  
public void setDestination(String destination) {  
    this.resdes = destination;  
}  
}  

Код контроллера:

@Controller  
@RequestMapping({"/","/main"})  
public class MainController {  
protected static Logger logger = Logger.getLogger("controller");  
@Resource(name="PostService")  
private PostService postService;  
@RequestMapping(value = "/home", method = RequestMethod.GET)  
public String getStopovers(Model model) {  
logger.debug("Received request to show all Posts");  
// Retrieve all posts by delegating the call to PostService  
List<VbResult> stops = postService.getAll();  
// Attach persons to the Model  
model.addAttribute("stops", stops);  
return "homepage";       
}   
}  

JSPPage

<c:forEach items="${stops}" var="stop">  
<tr>  
<td><c:out value="${stop.ressrc}" />  
</td>  
<td><c:out value="${stop.resdes}" />  
</td>  
</tr>  
</c:forEach>  

1 Ответ

2 голосов
/ 28 июля 2011

javax.el.PropertyNotFoundException: свойство 'ressrc' не найдено для типа com.datacaliper.vbuddy.domain.VbResult

По сути, это говорит о том, что нет метода получения с именем getRessrc() в классе с полным квалифицированным именем com.datacaliper.vbuddy.domain.VbResult.

И действительно, такого метода нет.Вы назвали это getSource().Исправьте свой код JSP соответствующим образом.

<c:out value="${stop.source}" /> 

Новый PropertyNotFoundException на resdes, который вы получите после исправления, теперь должен быть достаточно понятен;)

...