2013-12-03 4 views
2

В некоторых моих jsf у меня есть форма. когда пользователь заполняет форму, которую он может нажать на кнопку. на следующий вы можете увидеть пример кода, который я использую:Метод должен иметь подпись «String method()», но имеет подпись «void method()»

<h:commandButton styleClass="btn btn-primary btn-block" value="#{msg['button.add.share']}" action="#{AddShareControler.add}" /> 

И в AddShareControler У меня есть метод, называемый add со следующей структурой:

public void add() throws DaoImplNotFoundException, DataSourceException, IOException{ 
    share.setUserId(id); 
    ShareDao dao=(ShareDao) Factory.getDao(ConfigReader.getConfig().getProperty("dao.share")); 
    dao.add(share); 
    FacesContext.getCurrentInstance().getExternalContext().redirect("share.jsf?uid="+share.getUserId()); 
} 

Но затмение Кеплер дает мне ошибку в мой файл xhtml. это ошибка, kelper дать мне:

метод должен иметь подпись «метод String()», но имеет подпись «недействительный () метод»

Я знаю, что является причиной этой ошибки , Beacuase Добавить метод return void. но почему eclipse juno не дает мне никакой ошибки для того же кода. И как я могу решить это в кеплере?

спасибо.

+1

Отметьте этот ответ http://stackoverflow.com/questions/8083469/validation-error-on-valid-facelet-when-calling-action-method-with-parameter – disrvptor

+0

@disrvptoe: thanks. оно работает. –

+0

Этот вопрос дублирует этот вопрос: http://stackoverflow.com/questions/8083469/method-must-have-signature-string-method-etc-but-has-signature-void – jhohlfeld

ответ

1

Я недавно установил eclipse Kepler. Создав простое приложение spring-jsf для тестирования, eclipse дал мне ту же ошибку. Вы можете продолжить, развернуть и выполнить приложение. Ошибка перезапуска eclipse исчезает. Тогда я думаю, что это ошибка затмения.