aspose file tools*
The moose likes JSF and the fly likes af:selectOneChoice - setting default selected value other than the first in line Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "af:selectOneChoice - setting default selected value other than the first in line" Watch "af:selectOneChoice - setting default selected value other than the first in line" New topic
Author

af:selectOneChoice - setting default selected value other than the first in line

Dan Ba
Greenhorn

Joined: Aug 18, 2009
Posts: 6
Hmmm, I'm stuck and would appreciate any help available (bet you've never read that on here before - LOL).

I'm building a dynamically populated af:selectonechoice and it works almost exactly as I'd like it. I'm grabbing distinct years from our database for those records which are active via a query in a sessionfacadebean - this query simply orders them in decending order (for example: 2011, 2010, 2009, 2008). But, my problem is that I can only get the page to load with the selectonechoice defaulted to the first year in the list.

Here's the code as it sits now . . .

jspx page:


and here's the code from the backing bean:




I've tried any and all manner of voodoo and code permutations, but, obviously, I'm missing the obvious somewhere. The selectoncechoice ALWAYS defaults to whatever the first year in the resultset is - and, of course, we want the years in order. But, we'd like the page to load with the current year selected by default.

So, the list may be:
2010
2009
2008

We'd like 2009 to be the default selected, not 2010 - which is what's being selected now (since it's first in the list).

* I've tried setting a value of "holder" in the backing bean when I'm working with the current year, and then reference that in the jspx page with the "value" element of the af:selectOneChoice - like this --> value="#{backing_reports_calholiday.holder}" . . . but, that didn't work.
* I can, of course, hard code the "value" element of the af:selectOneChoice when I "know" what the placement of the current year is in my result set . . . but, obviously, that's not the solution.

In my old .asp days it would simply be dynamically setting one of the <option> tags as "selected" within the <select> tag.

Hmmm (Image of me scratching my chin thoughtfully)

Any and all help would be greatly appreciated.



d
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61415
    
  67

Please take the time to choose the correct forum for your posts. This forum is for questions on beginning Java.

For more information, please read this.

This post has been moved to a more appropriate forum.

[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Dan Ba
Greenhorn

Joined: Aug 18, 2009
Posts: 6
Bear Bibeault wrote:Please take the time to choose the correct forum for your posts. This forum is for questions on beginning Java.

For more information, please read this.

This post has been moved to a more appropriate forum.


Sorry, not trying to cause trouble.

But, I am just beginning java.

Again, sorry.



Dan-O
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61415
    
  67

It's already been moved to the JSF forum.
Dan Ba
Greenhorn

Joined: Aug 18, 2009
Posts: 6
OK, tried a change and it's now presenting me with a different problem.

I changed my if statement in the backing bean.
I had (see line 15):



The problem (I think) is that 'year' is a Long and 'currentyear' is an Integer. So, I was getting a false. I changed it to (again, see line 15):



And, then, I removed the hard coded set of the value from the .jspx and then the page loaded correctly.

Unfortunately, now when I (as a user) choose a different option from the selectOneChoice list box . . . the page refreshes with the value set in the backing bean (in this instance, the current year).

grrrrrrr.



Dan-O
Dan Ba
Greenhorn

Joined: Aug 18, 2009
Posts: 6
Just wanted to close any loose ends here (in case it might help others).

I changed the if statement below to only set the value based upon whether the page was a postback or an initial load. As follows:

I added this method (introduced to me by a co-worker) to the backing bean:


Then changed the if statement with the setValue as follows:
(see line 15):



page works as desired now.

Thanks for traveling along with me on my little quest for knowledge.


Dan-O
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: af:selectOneChoice - setting default selected value other than the first in line