Uploaded image for project: 'Commons BeanUtils'
  1. Commons BeanUtils
  2. BEANUTILS-43

Mapped property inside a mapped property is not populated on submit

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.7.0
    • 1.8.0
    • Expression Syntax
    • None
    • Operating System: Windows XP
      Platform: PC

    • 31852

    Description

      Hi, everyone.

      Suppose, I have a Map in my form, called "person":

      private Map person;

      That Map has (besides other entries), a entry called "addresses", which is in
      turn a Map again. This "addresses" Map has several addresses of the person. One
      of those addresses has key "home" and String value of home address.

      I want to render a text input field for the "home" address - I use EL syntax, no
      brackets (it renders element correctly):

      <nested:text property="person.addresses.home"/>

      In html this element is being rendered correctly, including correctly
      displayed value of home address, taken from the "addresses" Map.

      However, if I submit this form with changed value of address, it's not being
      populated.

      I wrote my own implementation of "addresses" Map to see what's happening, and I
      saw that no put method is called at all (only get() while rendering the element).

      So then I also made custom implementation of "person" Map and saw there, that
      while submitting, it calls get("addresses") (which returns "addresses" Map) and
      that's all.

      So apparently, BeanUtils sees, that it retrieved a Map and stops processing, not
      generating any exceptions BTW.

      Attachments

        Issue Links

          Activity

            People

              niallp Niall Pemberton
              vspa@mail.ru Firepica
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: