You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Yves Dessertine <yv...@gmail.com> on 2009/03/04 17:39:06 UTC

Problem with default value

Hello,

I'm having a problem with <html:select> from the struts taglib. The
default option is only selected in the first example (but all 3 lists
are created well in jsp page). I googled a lot, but could't find
similar problem.

My JSP page contains 3 selects:

==============================================================
1) Default value selected:

	<html:select name="afficheStockIAD" property="extractIntegrator">
		<html:options name="afficheStockIAD" property="listIntegratorNames" />
	</html:select>

Generated output:
	<select name="extractIntegrator"><option value="INT1">INT1</option>
	<option value="INT2" selected="selected">INT2</option></select>



==============================================================
2) Default value not selected:

	<html:select name="afficheStockIAD" property="extractYear">
		<option value="<bean:write name="afficheStockIAD"
property="uberPreviousYear" />"><bean:write name="afficheStockIAD"
property="uberPreviousYear" /></option>
		<option value="<bean:write name="afficheStockIAD"
property="previousYear" />"><bean:write name="afficheStockIAD"
property="previousYear" /></option>
		<option value="<bean:write name="afficheStockIAD"
property="currentYear" />"><bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="<bean:write name="afficheStockIAD"
property="nextYear" />"><bean:write name="afficheStockIAD"
property="nextYear" /></option>
		<option value="<bean:write name="afficheStockIAD"
property="uberNextYear" />"><bean:write name="afficheStockIAD"
property="uberNextYear" /></option>
	</html:select>


Generated output:
	<select name="extractYear"><option value="2007">2007</option>
		<option value="2008">2008</option>
		<option value="2009">2009</option>
		<option value="2010">2010</option>
		<option value="2011">2011</option></select>

==============================================================
3) Default value not selected:
	<html:select name="afficheStockIAD" property="extractMonth">
		<option value="1">Janvier <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="2">Février <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="3">Mars <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="4">Avril <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="5">Mai <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="6">Juin <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="7">Juillet <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="8">Août <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="9">Septembre <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="10">Octobre <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="11">Novembre <bean:write name="afficheStockIAD"
property="currentYear" /></option>
		<option value="12">Décembre <bean:write name="afficheStockIAD"
property="currentYear" /></option>
	</html:select>

Generated output:
	<select name="extractMonth"><option value="1">Janvier 2009</option>
		<option value="2">Février 2009</option>
		<option value="3">Mars 2009</option>
		<option value="4">Avril 2009</option>
		<option value="5">Mai 2009</option>
		<option value="6">Juin 2009</option>
		<option value="7">Juillet 2009</option>
		<option value="8">Août 2009</option>
		<option value="9">Septembre 2009</option>
		<option value="10">Octobre 2009</option>
		<option value="11">Novembre 2009</option>
		<option value="12">Décembre 2009</option></select>




The afficheStockIAD.extractIntegrator, afficheStockIAD.extractYear and
afficheStockIAD.extractMonth are filled, and get transfered with the
formbean.

Formbean like this :
	private String extractYear;
	private String extractIntegrator;
	private String extractMonth;
	
	public String getExtractYear() {
		return extractYear;
	}

	public void setExtractYear(String extractYear) {
		this.extractYear = extractYear;
	}

	public String getExtractIntegrator() {
		return extractIntegrator;
	}

	public void setExtractIntegrator(String extractIntegrator) {
		this.extractIntegrator = extractIntegrator;
	}

	public String getExtractMonth() {
		return extractMonth;
	}

	public void setExtractMonth(String extractMonth) {
		this.extractMonth = extractMonth;
	}


Help, if any ideas.


Regards,


Yves

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Problem with default value

Posted by Dave Newton <ne...@yahoo.com>.
Yves Dessertine wrote:
> Yeah, thanks a lot Benjamin!
> 
> I did *basically* what you told (building a Collection of
> LabelValueBean, but I did this in an action -- same result: it works
> :)).
> 
> But I still don't understand why selecting default values hadn't
> worked when building a list of option with individual <html:option />
> tags in jsp page. Do you have an idea? Just for my culture.

Because Struts had nothing to do with creating the <option> elements. 
The <html:select> tag doesn't retroactively examine the DOM to figure 
out which item (if any) should be selected, it performs that logic while 
creating the option elements.

Dave


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Problem with default value

Posted by Yves Dessertine <yv...@gmail.com>.
Yeah, thanks a lot Benjamin!

I did *basically* what you told (building a Collection of
LabelValueBean, but I did this in an action -- same result: it works
:)).

But I still don't understand why selecting default values hadn't
worked when building a list of option with individual <html:option />
tags in jsp page. Do you have an idea? Just for my culture.

Regards,

Yves


2009/3/4 benjamin haimerl <b-...@gmx.de>:
> hi i would use
> html:optionsCollection if you want to use the "selected=selected" feature
>
> form.jsp:
> <%@ page language="java" pageEncoding="UTF-8"%>
> <%@page import="java.util.ArrayList"%>
> <%@page import="java.util.Collection"%>
> <%@page import="java.util.Vector"%>
> <%@page import="org.apache.struts.util.LabelValueBean"%>
> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
>
> <html>
>   <head>
>       <title>JSP for TestNameForm form</title>
>   </head>
>   <body>
>   <%
>   Collection myList = new Vector();
>   for(int i=0;i<20;i++) {
>   myList.add(new LabelValueBean("label"+i, i+"value"));
>   }
>   pageContext.setAttribute("myList", myList);
>    %>
>       <html:form action="/testName">
>           name : <html:select property="name" *value="3value"*>
>           <html:optionsCollection name="myList" value="value"
> label="label"/>
>           </html:select>
>           <html:submit/><html:cancel/>
>       </html:form>
>   </body>
> </html>
>
> *HTML-Output:*
>
> <html>        <head>
>                <title>JSP for TestNameForm form</title>
>        </head>
>        <body>
>
>                <form name="testNameForm" method="post"
> action="/Test/testName.do">
>
>                        name : <select name="name"><option
> value="0value">label0</option>
> <option value="1value">label1</option>
> <option value="2value">label2</option>
> <option value="3value" selected="selected">label3</option>
> <option value="4value">label4</option>
> <option value="5value">label5</option>
> <option value="6value">label6</option>
> <option value="7value">label7</option>
>
> <option value="8value">label8</option>
> <option value="9value">label9</option>
> <option value="10value">label10</option>
> <option value="11value">label11</option>
> <option value="12value">label12</option>
> <option value="13value">label13</option>
> <option value="14value">label14</option>
> <option value="15value">label15</option>
> <option value="16value">label16</option>
>
> <option value="17value">label17</option>
> <option value="18value">label18</option>
> <option value="19value">label19</option></select>
>                        <input type="submit" value="Submit"><input
> type="submit" name="org.apache.struts.taglib.html.CANCEL" value="Cancel"
> onclick="bCancel=true;">
>                </form>
>        </body>
> </html>
>
> so its possible to set the default value by the 'value=""' attribute of the
> html:select tag
> <html:select property="name" *value="3value"*>  ...of course the value must
> match to any of your existing
> values... otherwise the first option will be selected by default
>
>
> I hope this was helpfull
> Benny
>
>
> Yves Dessertine wrote:
>>
>> Hello,
>>
>> I'm having a problem with <html:select> from the struts taglib. The
>> default option is only selected in the first example (but all 3 lists
>> are created well in jsp page). I googled a lot, but could't find
>> similar problem.
>>
>> My JSP page contains 3 selects:
>>
>> ==============================================================
>> 1) Default value selected:
>>
>>        <html:select name="afficheStockIAD" property="extractIntegrator">
>>                <html:options name="afficheStockIAD"
>> property="listIntegratorNames" />
>>        </html:select>
>>
>> Generated output:
>>        <select name="extractIntegrator"><option value="INT1">INT1</option>
>>        <option value="INT2" selected="selected">INT2</option></select>
>>
>>
>>
>> ==============================================================
>> 2) Default value not selected:
>>
>>        <html:select name="afficheStockIAD" property="extractYear">
>>                <option value="<bean:write name="afficheStockIAD"
>> property="uberPreviousYear" />"><bean:write name="afficheStockIAD"
>> property="uberPreviousYear" /></option>
>>                <option value="<bean:write name="afficheStockIAD"
>> property="previousYear" />"><bean:write name="afficheStockIAD"
>> property="previousYear" /></option>
>>                <option value="<bean:write name="afficheStockIAD"
>> property="currentYear" />"><bean:write name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="<bean:write name="afficheStockIAD"
>> property="nextYear" />"><bean:write name="afficheStockIAD"
>> property="nextYear" /></option>
>>                <option value="<bean:write name="afficheStockIAD"
>> property="uberNextYear" />"><bean:write name="afficheStockIAD"
>> property="uberNextYear" /></option>
>>        </html:select>
>>
>>
>> Generated output:
>>        <select name="extractYear"><option value="2007">2007</option>
>>                <option value="2008">2008</option>
>>                <option value="2009">2009</option>
>>                <option value="2010">2010</option>
>>                <option value="2011">2011</option></select>
>>
>> ==============================================================
>> 3) Default value not selected:
>>        <html:select name="afficheStockIAD" property="extractMonth">
>>                <option value="1">Janvier <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="2">Février <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="3">Mars <bean:write name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="4">Avril <bean:write name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="5">Mai <bean:write name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="6">Juin <bean:write name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="7">Juillet <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="8">Août <bean:write name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="9">Septembre <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="10">Octobre <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="11">Novembre <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>                <option value="12">Décembre <bean:write
>> name="afficheStockIAD"
>> property="currentYear" /></option>
>>        </html:select>
>>
>> Generated output:
>>        <select name="extractMonth"><option value="1">Janvier 2009</option>
>>                <option value="2">Février 2009</option>
>>                <option value="3">Mars 2009</option>
>>                <option value="4">Avril 2009</option>
>>                <option value="5">Mai 2009</option>
>>                <option value="6">Juin 2009</option>
>>                <option value="7">Juillet 2009</option>
>>                <option value="8">Août 2009</option>
>>                <option value="9">Septembre 2009</option>
>>                <option value="10">Octobre 2009</option>
>>                <option value="11">Novembre 2009</option>
>>                <option value="12">Décembre 2009</option></select>
>>
>>
>>
>>
>> The afficheStockIAD.extractIntegrator, afficheStockIAD.extractYear and
>> afficheStockIAD.extractMonth are filled, and get transfered with the
>> formbean.
>>
>> Formbean like this :
>>        private String extractYear;
>>        private String extractIntegrator;
>>        private String extractMonth;
>>
>>        public String getExtractYear() {
>>                return extractYear;
>>        }
>>
>>        public void setExtractYear(String extractYear) {
>>                this.extractYear = extractYear;
>>        }
>>
>>        public String getExtractIntegrator() {
>>                return extractIntegrator;
>>        }
>>
>>        public void setExtractIntegrator(String extractIntegrator) {
>>                this.extractIntegrator = extractIntegrator;
>>        }
>>
>>        public String getExtractMonth() {
>>                return extractMonth;
>>        }
>>
>>        public void setExtractMonth(String extractMonth) {
>>                this.extractMonth = extractMonth;
>>        }
>>
>>
>> Help, if any ideas.
>>
>>
>> Regards,
>>
>>
>> Yves
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Problem with default value

Posted by benjamin haimerl <b-...@gmx.de>.
hi i would use
html:optionsCollection if you want to use the "selected=selected" feature

form.jsp:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Collection"%>
<%@page import="java.util.Vector"%>
<%@page import="org.apache.struts.util.LabelValueBean"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html>
    <head>
        <title>JSP for TestNameForm form</title>
    </head>
    <body>
    <%
    Collection myList = new Vector();
    for(int i=0;i<20;i++) {
    myList.add(new LabelValueBean("label"+i, i+"value"));
    }
    pageContext.setAttribute("myList", myList);
     %>
        <html:form action="/testName">
            name : <html:select property="name" *value="3value"*>
            <html:optionsCollection name="myList" value="value" 
label="label"/>
            </html:select>
            <html:submit/><html:cancel/>
        </html:form>
    </body>
</html>

 *HTML-Output:*
 
<html> 
	<head>
		<title>JSP for TestNameForm form</title>
	</head>
	<body>
	
		<form name="testNameForm" method="post" action="/Test/testName.do">

			name : <select name="name"><option value="0value">label0</option>
<option value="1value">label1</option>
<option value="2value">label2</option>
<option value="3value" selected="selected">label3</option>
<option value="4value">label4</option>
<option value="5value">label5</option>
<option value="6value">label6</option>
<option value="7value">label7</option>

<option value="8value">label8</option>
<option value="9value">label9</option>
<option value="10value">label10</option>
<option value="11value">label11</option>
<option value="12value">label12</option>
<option value="13value">label13</option>
<option value="14value">label14</option>
<option value="15value">label15</option>
<option value="16value">label16</option>

<option value="17value">label17</option>
<option value="18value">label18</option>
<option value="19value">label19</option></select>
			<input type="submit" value="Submit"><input type="submit" name="org.apache.struts.taglib.html.CANCEL" value="Cancel" onclick="bCancel=true;">
		</form>
	</body>
</html>

so its possible to set the default value by the 'value=""' attribute of the html:select tag
<html:select property="name" *value="3value"*>  ...of course the value must match to any of your existing
values... otherwise the first option will be selected by default


I hope this was helpfull						 
Benny


Yves Dessertine wrote:
> Hello,
>
> I'm having a problem with <html:select> from the struts taglib. The
> default option is only selected in the first example (but all 3 lists
> are created well in jsp page). I googled a lot, but could't find
> similar problem.
>
> My JSP page contains 3 selects:
>
> ==============================================================
> 1) Default value selected:
>
> 	<html:select name="afficheStockIAD" property="extractIntegrator">
> 		<html:options name="afficheStockIAD" property="listIntegratorNames" />
> 	</html:select>
>
> Generated output:
> 	<select name="extractIntegrator"><option value="INT1">INT1</option>
> 	<option value="INT2" selected="selected">INT2</option></select>
>
>
>
> ==============================================================
> 2) Default value not selected:
>
> 	<html:select name="afficheStockIAD" property="extractYear">
> 		<option value="<bean:write name="afficheStockIAD"
> property="uberPreviousYear" />"><bean:write name="afficheStockIAD"
> property="uberPreviousYear" /></option>
> 		<option value="<bean:write name="afficheStockIAD"
> property="previousYear" />"><bean:write name="afficheStockIAD"
> property="previousYear" /></option>
> 		<option value="<bean:write name="afficheStockIAD"
> property="currentYear" />"><bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="<bean:write name="afficheStockIAD"
> property="nextYear" />"><bean:write name="afficheStockIAD"
> property="nextYear" /></option>
> 		<option value="<bean:write name="afficheStockIAD"
> property="uberNextYear" />"><bean:write name="afficheStockIAD"
> property="uberNextYear" /></option>
> 	</html:select>
>
>
> Generated output:
> 	<select name="extractYear"><option value="2007">2007</option>
> 		<option value="2008">2008</option>
> 		<option value="2009">2009</option>
> 		<option value="2010">2010</option>
> 		<option value="2011">2011</option></select>
>
> ==============================================================
> 3) Default value not selected:
> 	<html:select name="afficheStockIAD" property="extractMonth">
> 		<option value="1">Janvier <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="2">Février <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="3">Mars <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="4">Avril <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="5">Mai <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="6">Juin <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="7">Juillet <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="8">Août <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="9">Septembre <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="10">Octobre <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="11">Novembre <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 		<option value="12">Décembre <bean:write name="afficheStockIAD"
> property="currentYear" /></option>
> 	</html:select>
>
> Generated output:
> 	<select name="extractMonth"><option value="1">Janvier 2009</option>
> 		<option value="2">Février 2009</option>
> 		<option value="3">Mars 2009</option>
> 		<option value="4">Avril 2009</option>
> 		<option value="5">Mai 2009</option>
> 		<option value="6">Juin 2009</option>
> 		<option value="7">Juillet 2009</option>
> 		<option value="8">Août 2009</option>
> 		<option value="9">Septembre 2009</option>
> 		<option value="10">Octobre 2009</option>
> 		<option value="11">Novembre 2009</option>
> 		<option value="12">Décembre 2009</option></select>
>
>
>
>
> The afficheStockIAD.extractIntegrator, afficheStockIAD.extractYear and
> afficheStockIAD.extractMonth are filled, and get transfered with the
> formbean.
>
> Formbean like this :
> 	private String extractYear;
> 	private String extractIntegrator;
> 	private String extractMonth;
> 	
> 	public String getExtractYear() {
> 		return extractYear;
> 	}
>
> 	public void setExtractYear(String extractYear) {
> 		this.extractYear = extractYear;
> 	}
>
> 	public String getExtractIntegrator() {
> 		return extractIntegrator;
> 	}
>
> 	public void setExtractIntegrator(String extractIntegrator) {
> 		this.extractIntegrator = extractIntegrator;
> 	}
>
> 	public String getExtractMonth() {
> 		return extractMonth;
> 	}
>
> 	public void setExtractMonth(String extractMonth) {
> 		this.extractMonth = extractMonth;
> 	}
>
>
> Help, if any ideas.
>
>
> Regards,
>
>
> Yves
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org