Igot this err when i try to insert.... : ERROR -------------------------------------------------------------------------------------------------------------------------------------------------------------------- Failure writing parameter value of component admin/PlayerForm:positionselect: Expression position for class edu.its.dreamteam.web.pages.admin.PlayerForm is read-only. --------------------------------------------------------------------------------------------------------------------------------------------------------------------
the error showed higlight in this part (in PlayerForm.tml): -------------------------------------------------------------------------------------------------------------------------------------------------------------------- <td><t:select t:id="positionSelect" model="positionSelectionModel" value="position" encoder="positionValueEncoder" label="Position"/></td> -------------------------------------------------------------------------------------------------------------------------------------------------------------------- could anyone could help me what had happened to my code ??? whats wrong with my code ? here's my code : *Club.java* public class Club extends BaseBean implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String idClub; private String clubName; public String getIdClub() { return idClub; } public void setIdClub(String idClub) { this.idClub = idClub; } public String getClubName() { return clubName; } public void setClubName(String clubName) { this.clubName = clubName; } @Override protected String getPrimaryKey() { return getIdClub(); } } *Position.java* public class Position extends BaseBean implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String idPosition; private String position; private Integer earnPoint; public String getIdPosition() { return idPosition; } public void setIdPosition(String idPosition) { this.idPosition = idPosition; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public Integer getEarnPoint() { return earnPoint; } public void setEarnPoint(Integer earnPoint) { this.earnPoint = earnPoint; } @Override protected String getPrimaryKey() { return getIdPosition(); } } *Player.java *public class Player extends BaseBean implements Serializable{* /** * */ * private static final long serialVersionUID = 1L; private String idPlayer; private String firstName; private String midName; private String lastName; private String idPosition; private String idClub; private Integer defaultPrice; private String number; private Position position; private Club club; public String getIdPlayer() { return idPlayer; } public void setIdPlayer(String idPlayer) { this.idPlayer = idPlayer; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getMidName() { return midName; } public void setMidName(String midName) { this.midName = midName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getIdPosition() { idPosition = getPosition().getIdPosition(); return idPosition; } public void setIdPosition(String idPosition) { this.idPosition = idPosition; this.getPosition().setIdPosition(idPosition); } public String getIdClub() { idClub = getClub().getIdClub(); return idClub; } public void setIdClub(String idClub) { this.idClub = idClub; getClub().setIdClub(idClub); } public Integer getDefaultPrice() { return defaultPrice; } public void setDefaultPrice(Integer defaultPrice) { this.defaultPrice = defaultPrice; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public Position getPosition() { if(position==null){ position = new Position(); } return position; } public void setPosition(Position position) { this.position = position; } public Club getClub() { if(club == null){ club = new Club(); } return club; } public void setClub(Club club) { this.club = club; } @Override protected String getPrimaryKey() { return getIdPlayer(); } } ---------------------------------------------------------------------------------------------------------------------------------------------------- *PlayerForm.java* public class PlayerForm extends BaseFormPage{ @Inject private IPlayerDao playerDao; @Inject private IPositionDao positionDao; @Inject private IClubDao clubDao; @Persist("client") private Player player; private Position position; private Club club; @Component private Form playerForm; private List<Position> positionList; private List<Club> clubList; private String idPlayer; public IClubDao getClubDao() { return clubDao; } public IPositionDao getPositionDao() { return positionDao; } public IPlayerDao getPlayerDao() { return playerDao; } public Player getPlayer() { return player; } public Position getPosition() { return position; } public Club getClub() { return club; } public List<Position> getPositionList() { positionList = getPositionDao().queryForList("", ""); return positionList; } public List<Club> getClubList() { clubList = getClubDao().queryForList("", ""); return clubList; } public PositionSelectionModel getPositionSelectionModel() { return new PositionSelectionModel(getPositionList()); } public ValueEncoder<Position> getPositionValueEncoder(){ return new PositionValueEncoder(getPositionList()); } public ClubSelectionModel getClubSelectionModel() { return new ClubSelectionModel(getClubList()); } public ValueEncoder<Club> getClubValueEncoder(){ return new ClubValueEncoder(getClubList()); } void onPrepare(){ if(player == null){ player = new Player(); } if(position == null){ position = new Position(); } if(club == null){ club = new Club(); } } void onActionFromClear(){ player = null; playerForm.clearErrors(); } Object onSuccessFromPlayerForm(){ if(getPlayer().getIdPlayer()==null){ getPlayer().setIdPlayer(getIdPrimaryKey().generateId()); getPlayer().setIdPosition(getPosition().getIdPosition()); getPlayer().setIdClub(getClub().getIdClub()); getPlayerDao().insert(getPlayer()); }else{ getPlayer().setIdPosition(getPosition().getIdPosition()); getPlayer().setIdClub(getClub().getIdClub()); getPlayerDao().update(getPlayer()); } return PlayerGrid.class; } void onActivate(String idPlayer){ this.idPlayer = idPlayer; player = (Player) getPlayerDao().findByPrimaryKey(idPlayer); } String onPassivate(){ return idPlayer; } }* PlayerForm.tml *<form t:type="Form" t:id="playerForm"> <t:errors/> <table class="soria"> <tr> <td><t:label for="firstNameField"/></td> <td> :</td> <td><input t:type="TextField" t:id="firstNameField" value=" Player.firstName" validate="required,minlength=3" size="20" label="First Name"/></td> </tr> <tr> <td><t:label for="midNameField"/></td> <td> :</td> <td><input t:type="TextField" t:id="midNameField" value=" Player.midName" size="20" label="Middle Name"/></td> </tr> <tr> <td><t:label for="lastNameField"/></td> <td> :</td> <td><input t:type="TextField" t:id="lastNameField" value=" Player.lastName" validate="required" size="20" label="Last Name"/></td> </tr> <tr> <td><t:label for="positionSelect"/></td> <td> </td> <td><t:select t:id="positionSelect" model="positionSelectionModel" value="position" encoder="positionValueEncoder" label="Position"/></td> </tr> <tr> <td><t:label for="clubSelect"/></td> <td> </td> <td><t:select t:id="clubSelect" model="clubSelectionModel" value="club" encoder="clubValueEncoder" label="Club"/></td> </tr> <tr> <td><t:label for="defaultPriceField"/></td> <td> </td> <td><input t:type="TextField" t:id="defaultPriceField" value="Player.defaultPrice" validate="required" size="20" label="Default Price"/></td> </tr> <tr> <td><t:label for="numberSelect"/></td> <td></td> <td><t:select t:id="numberSelect" model="'1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20'" value=" Player.number" label="Number"/></td> </tr> <tr><td colspan="3"></td></tr> <tr> <td colspan="3"> <input type="submit" label="Save" dojoType=" dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconSave"/> <input type="submit" label="Back" dojoType=" dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconUndo"/> </td> </tr> </table> </form>