Forgot to add; here's how I used it in my web.xml:

    <filter>
        <filter-name>
            OpenPersistenceManagerInViewFilter
        </filter-name>

        <filter-class>
            
org.springframework.orm.jdo.support.OpenPersistenceManagerInViewFilter
        </filter-class>
    </filter>

    <filter-mapping>
        <filter-name>
            OpenPersistenceManagerInViewFilter
        </filter-name>

        <url-pattern>/*</url-pattern>
    </filter-mapping>

The other thing you could do is use the persistenceManager's detachCopy method 
on anything you're sending out to the web view layer.


Ibrahim Hamza wrote:
> Dear All
> I use JDO  with spring
> and when i add @ModelAttribute("countries")
> All things go fine except the data not saved without any exception
> When query from another datastore
> 
> 
> @Controller
> public class PortController  {
> 
> private static final String FORM_MODEL_KEY = "ports";
> 
> private static final String FORM_UPDATE_KEY = "port/Edit";
> 
> private static final String REDIRECT_LIST_VIEW_KEY = "redirect:/port/
> home.htm" ;
> 
>   @Autowired
>   private PortDAO portDAO;
>   @Autowired
>   private CountryDAO countryDAO;
> 
>   public PortController() {}
> 
> 
> 
>   @InitBinder
>   protected void initBinder(HttpServletRequest request,
>                 ServletRequestDataBinder binder) throws Exception {
>           binder.registerCustomEditor(String.class, new
> StringTrimmerEditor(false));
>           binder.registerCustomEditor
> (com.xesolution.domain.Country.class, new CountryEditor(countryDAO));
> 
>   }
> 
>   @RequestMapping(value="/port/home.htm")
>   public ModelMap list() {
>       return new ModelMap(FORM_MODEL_KEY,portDAO.readAll());
>   }
>   @RequestMapping(value="/port/new.htm")
>   public ModelAndView create(){
>             Port port = new Port();
>             return new ModelAndView(FORM_UPDATE_KEY,FORM_MODEL_KEY,port);
>         }
>  @RequestMapping(value="/port/update.htm")
>   public ModelAndView update(@RequestParam("id") String id) {
>         Port result = portDAO.read(id);
>       return new ModelAndView(FORM_UPDATE_KEY,FORM_MODEL_KEY, result);
>   }
> 
> 
>   @RequestMapping(value="/port/save.htm", method = RequestMethod.POST)
>   public ModelAndView save(@ModelAttribute(FORM_MODEL_KEY) Port port,
> BindingResult result, SessionStatus status) {
> 
>       new PortValidator().validate(port, result);
>       if (result.hasErrors())
>       {
>         return new ModelAndView(FORM_UPDATE_KEY, FORM_MODEL_KEY,
> port);
>       }
>       else
>       {
>               portDAO.persist(port);
>               return new ModelAndView(FORM_UPDATE_KEY, FORM_MODEL_KEY, port);
>         return new ModelAndView(REDIRECT_LIST_VIEW_KEY, list());
>       }
>   }
> 
>       @ModelAttribute("countries")
>       public List<?> populateCountry() {
>               //this make data not saved
>               return countryDAO.readAll();
>               //But this make the data saved
>               //return portDAO.readAll();
>       }
> 
>   public void setPortDAO(PortDAO portDAO) {
>     this.portDAO = portDAO;
>   }
> }
> and this is jsp line which display the form select
> <form:select path="country" items="${countries}" itemLabel="name"
> itemValue="id"/>
> 
> --
> 
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine for Java" group.
> To post to this group, send email to google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine-java?hl=.
> 
> 

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=.


Reply via email to