Почему функция не вызывается на p: commandButton?
Почему функция не вызывается в p: commandButton? В отладке видно, что программа вызывает функции конвертера, но функция кнопки не вызывается
Jsf page
<h:form>
<p:panel header="Create a new book" style="margin-bottom:20px">
<h:panelGrid columns="2" cellpadding="5">
<p:outputLabel value="Жанр:" />
<p:selectManyMenu value="#{listgames.newGame.listGenre}" converter="#{genreConvertor}"
var="t" filter="true" filterMatchMode="contains" showCheckbox="true">
<f:selectItems value="#{listgenres.all_games}" var="theme" itemLabel="#{theme.name}" itemValue="#{theme}"/>
<p:column>
<h:outputText value="#{t.name}" />
</p:column>
</p:selectManyMenu>
<p:commandButton action="#{listgames.createNew}"/>
</h:panelGrid>
</p:panel>
</h:form>
converter
@Component("genreConvertor")
public class GenreConverter implements Converter
{
@Autowired
private GenreService genreService;
@Override
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String s) {
if (s == null || s.isEmpty()) {
return null;
}
try {
return genreService.getById(Long.valueOf(s));
} catch (NumberFormatException e) {
throw new ConverterException(new FacesMessage(s + " is not a valid Warehouse ID"), e);
}
}
@Override
public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object o)
{
if (o == null) {
return ""; // Never return null here!
}
if (o instanceof Genre) {
return String.valueOf(((Genre) o).getId());
} else {
throw new ConverterException(new FacesMessage(o + " is not a valid Warehouse"));
}
}
}
Spring bean s
@Component(value = "listgames")
@SessionScope
public class GamesView {
@Autowired
private GamesService gamesService;
private List<Game> All_games = new ArrayList<Game>();
private Game newGame=new Game();
public Game getNewGame() {
return newGame;
}
public GamesService getGamesService() {
return gamesService;
}
public void setGamesService(GamesService gamesService) {
this.gamesService = gamesService;
}
public void setNewGame(Game newGame) {
this.newGame = newGame;
}
public void onRowEdit(RowEditEvent event) {
Game new_game=(Game)event.getObject();
All_games.get(new_game.getId()-1).update(new_game);
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "INFO", "X/Y edit successful!");
FacesContext.getCurrentInstance().addMessage(null, msg);
int i=0;
i++;
}
public void createNew() {
newGame.setStatus(gamesService.getStatus( 1));
newGame.setEnd(newGame.getStart());
gamesService.addBank(newGame);
newGame = new Game();
}
public List<Game> getAll_games() {
return gamesService.getAll();
}
public void setAll_games(List<Game> all_games) {
All_games = all_games;
}
}