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
Register / Login
JavaRanch » Java Forums » Java » JSF
Reply 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: 56150
    
  13

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.

[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About 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: 56150
    
  13

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://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to run our stuff on 16 servers instead of 3.
 
subject: af:selectOneChoice - setting default selected value other than the first in line
 
Similar Threads
problem with dropdown
how do I find date difference in months
[Solved] EL doesn't work as per expectation
Convert Long to String inside JSF el expression
Create a Different selectOneListbox Depending On the Radio Button Clicked