To solve this particular scenario, we've
org.apache.struts.util.LabelValueBean class. Using this class we can display
a Label(say "X") on multibox and send a different value(say "Y") to the
server. Hope I'm able to answer your questions.

Thanks,
Tarun.

On 4/2/06, 王曾wang_zeng <[EMAIL PROTECTED]> wrote:
>
> hi:
>    i have a question. in a multibox,the property attribute should be
> pointed
> to an array in the form bean,and this array will be checked to see if
> there exists such a element who's value equals to the value set in the
> multibox. my question is how to set the value of multibox which will be
> used
> to find a match with in the array especially when the multibox's value
> dose
> not equal to the label displayed on the check box in IE.
>
>
> 2006/4/1, Max Cooper <[EMAIL PROTECTED]>:
> >
> > 2 things come to mind:
> >
> > 1) Make sure your ActionForm has the appropriate setter method. It wont
> > be setDenyCodes(String value) since there can be many values. IIRC, you
> > need a setter that takes a String array as an argument. I could be wrong
> > -- do some research to be sure.
> >
> > 2) Make sure the URL of the submit (when using GET) doesn't get so long
> > that IE chops the end off. Check all the boxes (so the URL will be at
> > its longest) to test. I think this happens around 4000 characters or so.
> > Using a POST avoids this limitation in a reliable manner.
> >
> > -Max
> >
> > Tarun Reddy wrote:
> > > Hi Vijay,
> > > It's working fine now. I've just added a method="GET" attribute to
> > > <html:form> tag. It's working perfectly fine. I don't have any idea
> how
> > this
> > > solved the problem. Thanks for all your time.
> > >
> > > Thanks,
> > > Tarun.
> > >
> > > On 3/31/06, Tarun Reddy <[EMAIL PROTECTED]> wrote:
> > >
> > >>Thanks Vijay! I've verified the value returned by
> > >>request.getParameterValues("denyCodes") even before sending out this
> > mail.
> > >>I don't have any clue on how to proceed further. I'll try debugging it
> > more.
> > >>
> > >>Thanks,
> > >>Tarun.
> > >>
> > >>
> > >>On 3/31/06, vijay venkataraman <[EMAIL PROTECTED]> wrote:
> > >>
> > >>>Tarun,
> > >>>If the value in being rendered is in string array pointed by the
> > >>>property it will be rendered with checked attribute set. I know it
> > >>>works.
> > >>>It is bit weired that the set method is not being called i am not
> able
> > >>>to find what is happening. Do you see the values coming fine in the
> > >>>HttpRequest?
> > >>>If you debug and view your HttpRequest - If you have *selected* some
> > >>>checkboxes then you should see a parameter by name denyCodes and to
> > that
> > >>>
> > >>>there will be a array containing the selected values in the array.
> > Sorry
> > >>>i am stuck with something deep and cannot probe any further now.
> > Pulling
> > >>>the bean util source code along with Struts source code and seeing
> what
> > >>>happens will give you a clear idea.
> > >>>
> > >>>Vijay Venkataraman
> > >>>
> > >>>Tarun Reddy wrote:
> > >>>
> > >>>
> > >>>>Hi Vijay,
> > >>>>Thanks for the reply! I had a look at the HTML source generated by
> JSP
> > >>>
> > >>>page
> > >>>
> > >>>>which contains multibox tag. Here are some sample entries,
> > >>>>
> > >>>><form name="denyForm" method="post" action="/testingtool/deny.do">
> > >>>>   <table>
> > >>>>       <tr align="center">    <input type="submit"
> > >>>
> > >>>value="Submit"></tr>
> > >>>
> > >>>>           <tr> <input type="checkbox" name="denyCodes"
> > >>>>value="216">216</tr>
> > >>>>          <tr>  <input type="checkbox" name="denyCodes"
> > >>>>value="415">415</tr>
> > >>>>           <tr> <input type="checkbox" name="denyCodes"
> > >>>
> > >>>value="05">05</tr>
> > >>>
> > >>>>Let me tell you, <bean:write> tag nested in the <html:multibox> tag
> > >>>
> > >>>takes
> > >>>
> > >>>>care of setting this value attirbute to the same as label. The HTML
> > >>>
> > >>>source
> > >>>
> > >>>>also proved that this problem is not related to setting value
> > >>>
> > >>>attribute.
> > >>>
> > >>>>Second point is, yeah there's a slight confusion in the use of
> > multibox
> > >>>
> > >>>tag.
> > >>>
> > >>>>In the specs they say that you can make ur checkboxes checked based
> on
> > >>>
> > >>>the
> > >>>
> > >>>>values present in, string array in the ActionForm. But can you tell
> me
> > >>>>whether we can make selections among multiple checkboxes and then
> send
> > >>>
> > >>>the
> > >>>
> > >>>>values of the checked checkboxes to the Action class? I'm surprised
> to
> > >>>
> > >>>see
> > >>>
> > >>>>that the setter method was never called while submitting the form to
> > >>>
> > >>>the
> > >>>
> > >>>>action class. Please suggest me.
> > >>>>
> > >>>>
> > >>>>On 3/31/06, vijay venkataraman <[EMAIL PROTECTED]> wrote:
> > >>>>
> > >>>>
> > >>>>
> > >>>>>The struts doc goes like this :
> > >>>>>
> > >>>>>*Multibox:*
> > >>>>>**
> > >>>>>
> > >>>>>Renders an HTML <input> element of type |checkbox|, whose "checked"
> > >>>>>status is initialized based on whether the specified value matches
> > one
> > >>>>>of the elements of the underlying property's array of current
> values.
> > >>>>>This element is useful when you have large numbers of checkboxes,
> and
> > >>>>>prefer to combine the values into a single array-valued property
> > >>>
> > >>>instead
> > >>>
> > >>>>>of multiple boolean properties. This tag is only valid when nested
> > >>>>>inside a form tag body.
> > >>>>>
> > >>>>>*WARNING*: In order to correctly recognize cases where none of the
> > >>>>>associated checkboxes are selected, the |ActionForm| bean
> associated
> > >>>>>with this form must include a statement setting the corresponding
> > >>>
> > >>>*array
> > >>>
> > >>>>>to zero length in the |reset()| method.
> > >>>>>*
> > >>>>>
> > >>>>>See the rendered html and make sure that check boxes are rendered
> > with
> > >>>>>the correct name.
> > >>>>>I don't see you setting any value to the value attribute of
> multibox.
> > >>>>>It is the value you set that is posted back.
> > >>>>>
> > >>>>>I don't know much about bean and iteration tag.
> > >>>>>
> > >>>>>Regards,
> > >>>>>Vijay Venkataraman
> > >>>>>
> > >>>>>
> > >>>>>Tarun Reddy wrote:
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>Hi All,
> > >>>>>>I've been wasting my time on one issue pertaining to
> <html:multibox>
> > >>>
> > >>>tag.
> > >>>
> > >>>>>>I'm writing a code which should generate multiple checkboxes
> > >>>
> > >>>dynamically
> > >>>
> > >>>>>>
> > >>>>>on
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>a JSP page. The JSP should send the checked checkboxes value to
> the
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>Action
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>class. But it's not sending any values. I've tried many approaches
> > >>>
> > >>>like
> > >>>
> > >>>>>>1)initialized all the elements in the String[] to "" in the
> reset()
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>method
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>2)tried retrieving the checked values using String[] codes=
> > >>>>>>request.getParameterValues("denyCodes");
> > >>>>>>None of the above methods worked for me. I'm using Weblogic 8.1and
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>Struts
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>1.2.8. I've tried with Struts 1.1 too. Here's my code.
> > >>>>>>-------------------
> > >>>>>>public class DenyForm extends ActionForm {
> > >>>>>>  private String[] denyCodes= new String[80];
> > >>>>>>  public String[] getDenyCodes(){
> > >>>>>>      return denyCodes;
> > >>>>>>  }
> > >>>>>>  public void setDenyCodes(String[] denycodes){
> > >>>>>>      this.denyCodes = denycodes;
> > >>>>>>  }
> > >>>>>>  public void reset(ActionMapping mapping, HttpServletRequest
> > >>>
> > >>>request)
> > >>>
> > >>>>>>
> > >>>>>{
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>      for(int i=0;i<80;i++){
> > >>>>>>          denyCodes[i] = "";
> > >>>>>>      }
> > >>>>>>  }
> > >>>>>>}
> > >>>>>>------------------------denycodes.jsp page is like this,
> > >>>>>><html:form action="deny">
> > >>>>>>  <table>
> > >>>>>>      <tr align="center">    <html:submit /></tr>
> > >>>>>>      <logic:iterate name="denialCodes" id="code">
> > >>>>>>          <tr>
> > >>>>>>              <html:multibox  property="denyCodes" >
> > >>>>>>                  <bean:write name="code" />
> > >>>>>>              </html:multibox><bean:write name="code"/>
> > >>>>>>          </tr>
> > >>>>>>      </logic:iterate>
> > >>>>>>  </table><br>
> > >>>>>></html:form>
> > >>>>>>---------------------------------------Action Class is
> > >>>>>>public class DenyAction extends Action {
> > >>>>>>  public ActionForward execute(ActionMapping mapping, ActionForm
> > >>>
> > >>>form,
> > >>>
> > >>>>>>          HttpServletRequest request, HttpServletResponse
> response)
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>throws
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>Exception{
> > >>>>>>
> > >>>>>>      HttpSession session = request.getSession();
> > >>>>>>      DenyForm denyForm = (DenyForm)form;
> > >>>>>>      String[] codes = denyForm.getDenyCodes();
> > >>>>>>//            String[] codes = request.getParameterValues
> > >>>
> > >>>("denyCodes");
> > >>>
> > >>>>>>       log.debug("codes array length is:"+codes.length);
> > >>>>>>      session.setAttribute("denyCodes",codes);
> > >>>>>>      return mapping.findForward("success");
> > >>>>>>  }
> > >>>>>>}
> > >>>>>>--------------------------------------------------
> > struts-config.xmlentry
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>is
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>like this
> > >>>>>>
> > >>>>>>   <form-bean name="denyForm" type="tars.form.DenyForm " />
> > >>>>>>
> > >>>>>>      <action path="/deny" type="tars.action.DenyAction"
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>name="denyForm">
> > >>>>>
> > >>>>>
> > >>>>>>          <forward name="success" path="/query.jsp" />
> > >>>>>>      </action>
> > >>>>>>------------------------------------------------------------------
> > >>>>>>
> > >>>>>>codes.length is always returning 0 as the length. I've added some
> > >>>
> > >>>debug
> > >>>
> > >>>>>>statements in the ActionForm's set method to see whether it's
> being
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>called
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>or not. To my surprise it was never called. That's what baffling
> me.
> > >>>
> > >>>This
> > >>>
> > >>>>>>
> > >>>>>is
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>really urgent. I would really appreciate if someone  could help me
> > >>>
> > >>>out.
> > >>>
> > >>>>>>Thanks,
> > >>>>>>Tarun.
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >>>>>------------------------------DISCLAIMER------------------------------
> > >>>>>This message is for the named person's use only. It may contain
> > >>>>>confidential, proprietary or legally privileged information. No
> > >>>>>confidentiality or privilege is waived or lost by any
> > mistransmission.
> > >>>>>
> > >>>>>If you receive this message in error, please immediately delete it
> > and
> > >>>
> > >>>>>all copies of it from your system, destroy any hard copies of it
> and
> > >>>>>notify the sender. You must not, directly or indirectly, use,
> > >>>
> > >>>disclose,
> > >>>
> > >>>>>distribute, print, or copy any part of this message if you are not
> > the
> > >>>
> > >>>>>intended recipient.
> > >>>>>
> > >>>>>Lisle Technology Partners Pvt. Ltd. and any of its subsidiaries
> each
> > >>>>>reserve the right to monitor all e-mail communications through its
> > >>>>>networks.
> > >>>>>
> > >>>>>Any views expressed in this message are those of the
> > >>>>>individual sender, except where the message states otherwise and
> the
> > >>>>>sender is authorized to state them to be the views of any such
> > entity.
> > >>>
> >
> >>>>>---------------------------------------------------------------------
> > >>>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>>>>For additional commands, e-mail: [EMAIL PROTECTED]
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>
> > >>>
> >
> >>>------------------------------DISCLAIMER------------------------------
> > >>>This message is for the named person's use only. It may contain
> > >>>confidential, proprietary or legally privileged information. No
> > >>>confidentiality or privilege is waived or lost by any
> mistransmission.
> > >>>
> > >>>If you receive this message in error, please immediately delete it
> and
> > >>>all copies of it from your system, destroy any hard copies of it and
> > >>>notify the sender. You must not, directly or indirectly, use,
> disclose,
> > >>>distribute, print, or copy any part of this message if you are not
> the
> > >>>intended recipient.
> > >>>
> > >>>Lisle Technology Partners Pvt. Ltd. and any of its subsidiaries each
> > >>>reserve the right to monitor all e-mail communications through its
> > >>>networks.
> > >>>
> > >>>Any views expressed in this message are those of the
> > >>>individual sender, except where the message states otherwise and the
> > >>>sender is authorized to state them to be the views of any such
> entity.
> > >>>
> > >>>---------------------------------------------------------------------
> > >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>>For additional commands, e-mail: [EMAIL PROTECTED]
> > >>>
> > >>>
> > >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>

Reply via email to