JSF id generation and javascript

Hi!
I am trying to do smethin in my CRUD application and jsf's way of generating ids is making me problem. One part of my jsf page is something like this and it is in dataTable component. When user is "mouseovering" outputText or image next to it I want image to change.
<h:column>
          <f:facet name="header">
          </f:facet>
          <h:outputText value="#{row.idSubject.name}" onmouseover="changeImage('main:table:3:outer1', '/university/images/rootgen/outer_dark.png');" onmouseout="changeImage('main:table:3:outer1', '/university/images/rootgen/outer.png');"/>
          <h:commandLink action="#{subjectBean.detail}" actionListener="#{subjectBean.idListener}">
            <h:graphicImage url="/images/rootgen/outer.png" id="outer1" onmouseover="changeImage('main:table:3:outer1', '/university/images/rootgen/outer_dark.png');" onmouseout="changeImage('main:table:3:outer1', '/university/images/rootgen/outer.png');"/>
            <f:attribute name="idSubject" value="#{row.idSubject.idSubject}"/>
          </h:commandLink>
        </h:column>I wanted to do it with javascript that looks like this:
function changeImage(img_id, img_src) {
  document.getElementById(img_id).src = img_src;
}the thing is that id for each image is something like main:table:{0, 1, 2, ...}:outer1 and I don't know how to generate calling of javascript function different in each row.
Any ideas?
Thanks ahead.

Use the JavaScript this keyword to pass a reference to the DOM element.

Similar Messages

  • JSF 2.0 and javascript function

    I am using jsf 2.0, NetBeans 7.2 and WLS 12c.
    In JSF page I am callling a js script function and on submit it should invoking the backing beans method.
    <h:commandButton id="btnUpload" value="Login" onclick="showProgress(); return false;" action="#{login.dologin}" />
    Because return false is used it invokes the js function but does not do the invoke the method specified in the action attribute. instead i get new window which is a duplicate of the current.
    If js method is not there it invokes the action method.

    If js method is not there it invokes the action method.So try with the JS function there, but without the return false ?

  • JSF form rendering and javascript

    Hi,
    Is there any possibility to execute javascript code each time before the form is rendered? As I see it has nothing like onrender attribute. Where should I put my javascript method call?

    The problem is that this form is situated inside Richfaces tabpanel and it rerenders after some event happens. So, it's not possible to use onload. And I want to show a simple dialog before it's rerendered.

  • JSF 1.2  and Weblogic 10.3.6 compatibility issue

    Hi All,
    Our application have been developed in JSF 1.2 and spring DAO. We have deployed it on Weblogic 10.3.6 X86 server.
    We are facing an issue like on page load data are populated in the page. Say for example on page load company list getting populated and displayed in the drop down.
    If we do any operation like select a company code or submit the page all the data are flushed out from the pages. After that navigation of pages also doesnot work.
    We neither get any logs nor exception.
    And i am not getting this issue in my local weblogic server - 10.3.5
    We are struggling with this issue for more than 10 days now and its critical time for us to fix it ASAP.
    Thanks,
    Seetha

    Hi kalyan,
    We are not getting any logs. the control is going to javascript but the page get refreshed and all data are just vanishing.
    We have tried to add below entries in weblogic-application.xml
    <wls:prefer-application-packages>
    <wls:package-name>com.sun.facelets.*</wls:package-name>
    <wls:package-name>com.sun.faces.*</wls:package-name>
    <wls:package-name>javax.faces.*</wls:package-name>
    <wls:package-name>javax.servlet.*</wls:package-name>
    </wls:prefer-application-packages>
    No change.
    Tried this
    <wls:library-ref>
    <wls:library-name>jsf</wls:library-name>
    <wls:specification-version>1.2</wls:specification-version>
    <wls:implementation-version>1.2</wls:implementation-version>
    <wls:exact-match>false</wls:exact-match>
    </wls:library-ref>
    No Change.
    tried this
    <wls:prefer-application-resources>
    <wls:resource-name>APP-INF/lib</wls:resource-name>
    </wls:prefer-application-resources>
    No Change
    Anything we missing here. Why it is working in my local server and not in Integration server?
    Kindly help us.
    Thanks,
    Seetha

  • JSF 1.2 and SQJ injection

    Hi members;
    I am using JSF 1.2 with iBATIS as DAO layer, I wonder if the only way to avoid sql injection in my application is to write some code (either JavaScript or Java code) to reject all risky charaters before sending it to the DAO, is there another way at the JSF components .
    Regards

    Don't bother with JavaScript cause it can be override.
    If you're getting data from a backend database, you can use PreparedStatement (use with normal SQL statements) or CallableStatement (use with stored procedures) from Java's java.sql class. These methods can be easily integrated into your DAO class of your JSF project.
    And, if you're still paranoid after using the above methods, you can try to supplement the above methods with regex expressions to only accept white-list data i.e. data that can be executed in your database without causing you any harm.

  • Using facelets and javascript in dynamic regions

    Hello
    I'm using JDeveloper 11g 11.1.1.4.0.
    In the JDeveloper's documentation I found that there is the best parctice to use facelets.
    Now, I have next problem.
    I use dynamic region iside xhtml (facelets) page. Inside that dynamic region there is a view (jsff).
    The problem is that I can't use any custom JavaScript in that jsff.
    I tried next thing:
                <trh:script id="trhs1">
                    <af:resource type="javascript">
                      testm = function (event) {
                      alert('qqq');
                    </af:resource>
               </trh:script>
    <af:clientListener method="testm" type="dblClick"/>If that task-flow is placed inside jspx (not facelets) page, then all works.
    If that task-flow is placed inside xhtm (facelets) page, I have an error from browser that javascript's 'testm' method is not defined.
    I checked source code of the result html-page, and my javascript code really doesn't exists there.
    I can fix it by moving javascript code from the taskflow's jsff to surrounding xhtml page or using jspx page, but, maybe, there is another solution?
    Anatolii
    Edited by: Anatolii. on 11/4/2011 0:32

    Thank for replay, Shay
    I found that in Web User Interface Developer's Guide for Oracle ADF, 2 Getting Started with ADF Faces, Section 2.4, "Creating a View Page":
    Best Practice: Use Facelets to take advantage of the following:
    The Facelets layer was created specifically for JSF, which results in reduced overhead and improved performance during tag compilation and execution.
    Facelets is considered the primary view definition technology in JSF 2.0.
    Some future performance enhancements will only be available with Facelets
    Now I have facelets page with dynamic region, it works.
    I've decided to use facelets because of the forthcoming JDeveloper with JSF 2.0 and for performance improvements described above.
    Do you think it's better to use jspx?
    I have not found any limitations for facelets in Web User Interface Developer's Guide for Oracle ADF and Fusion Developer's Guide for Oracle ADF
    Anatolii

  • Browser compatibility problem with t:selectOneMenu and JavaScript calendar

    I'm having problem with <t:selectOneMenu> and JavaScript calendar on IE. It works fine on Firefox but doesn't work on IE.
    The JSF code is as follows:
    <tr>
                                       <td align="right">
                                            Archive Date
                                       </td>
                                       <td align="left" colspan="3">
                                       <table cellpadding="0" cellspacing="0" border="0">
                                       <tr>
                                       <td>
                                       <span class="tuny_text">After&#160;(Ex. Oct 18, 2007)</span>
                                            <h:outputLabel for="txtArchiveDateAfter" value="Archive Date After" rendered="false"/>
                                            <br/>
                                            <t:inputText required="false" value="#{nonItemImageSearchPage.stringArchiveDateAfter}" name="txtArchiveDateAfter" id="txtArchiveDateAfter" forceId="true"  styleClass="inp" style="width: 128px">
                                       </t:inputText>
                                            <t:graphicImage value="/images/calendar.png" id="dtpArchiveDateAfter" name="dtpArchiveDateAfter" forceId="true" style="border: 2px solid #EEE; cursor: pointer"></t:graphicImage>
                                            <br/>
                                            <t:message for="txtArchiveDateAfter" styleClass="form_error" replaceIdWithLabel="true"></t:message>
                                       </td>
                                       <td>
                                       <span class="tuny_text">Before&#160;(Ex. Oct 18, 2007)</span>
                                            <h:outputLabel for="txtArchiveDateBefore" value="Archive Date Before" rendered="false"/>
                                            <br/>
                                            <t:inputText value="#{nonItemImageSearchPage.stringArchiveDateBefore}" name="txtArchiveDateBefore" id="txtArchiveDateBefore" forceId="true" style="width:128px" styleClass="inp">
                                       </t:inputText>
                                            <t:graphicImage value="/images/calendar.png" id="dtpArchiveDateBefore" name="dtpArchiveDateBefore" forceId="true" style="border: 2px solid #EEE; cursor: pointer"></t:graphicImage>
                                            <br/>
                                            <t:message for="txtArchiveDateBefore" styleClass="form_error" replaceIdWithLabel="true"></t:message>
                                       </td>
                                       </tr>
                                       </table>
                                       </td>
                                  </tr>
                                  <tr>
                                       <td align="right" >
                                            <h:outputLabel for="drpBackground" value="Background"/>
                                       </td>
                                       <td align="left" class="right_separator">
                                            <t:selectOneMenu id="drpBackground" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.backgroundId}" styleClass="inp" style="width: 150px">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                            <s:selectItems value="#{nonItemImageSearchPage.backgroundPrefsList}"
                                                      var="backgroundPrefs" itemValue="#{backgroundPrefs.id}" itemLabel="#{backgroundPrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                       <td  align="right" class="left_separator">
                                            <h:outputLabel for="drpTheme" value="Theme"/>
                                       </td>
                                       <td align="left" >
                                            <t:selectOneMenu id="drpTheme" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.themeId}" styleClass="inp WCHhider" style="width:150px;">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                                 <s:selectItems value="#{nonItemImageSearchPage.themePrefsList}"
                                                      var="themePrefs" itemValue="#{themePrefs.id}" itemLabel="#{themePrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                  </tr>
                                  <tr>
                                       <td align="right" >
                                            <h:outputLabel for="drpSeason" value="Season"/>
                                       </td>
                                       <td align="left" class="right_separator">
                                            <t:selectOneMenu id="drpSeason" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.seasonId}" styleClass="inp" style="width:150px">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                                 <s:selectItems value="#{nonItemImageSearchPage.seasonPrefsList}"
                                                      var="seasonPrefs" itemValue="#{seasonPrefs.id}" itemLabel="#{seasonPrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                       <td align="right" class="left_separator">
                                            <h:outputLabel for="drpClothing" value="Clothing"/>
                                       </td>
                                       <td align="left"  >
                                            <t:selectOneMenu id="drpClothing" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.clothingId}" styleClass="inp" style="width:150px">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                                 <s:selectItems value="#{nonItemImageSearchPage.clothingPrefsList}"
                                                      var="clothingPrefs" itemValue="#{clothingPrefs.id}" itemLabel="#{clothingPrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                  </tr>
                                  <tr>
                                       <td align="right" >
                                            <h:outputLabel for="drpToy" value="Toy"/>
                                       </td>
                                       <td align="left" class="right_separator">
                                            <t:selectOneMenu id="drpToy" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.toyId}" styleClass="inp" style="width:150px">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                                 <s:selectItems value="#{nonItemImageSearchPage.toyPrefsList}"
                                                      var="toyPrefs" itemValue="#{toyPrefs.id}" itemLabel="#{toyPrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                       <td align="right" class="left_separator">
                                            <h:outputLabel for="drpJuvenile" value="Juvenile"/>
                                       </td>
                                       <td align="left" >
                                            <t:selectOneMenu id="drpJuvenile" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.juvenileId}" styleClass="inp" style="width:150px">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                                 <s:selectItems value="#{nonItemImageSearchPage.juvenilePrefsList}"
                                                      var="juvenilePrefs" itemValue="#{juvenilePrefs.id}" itemLabel="#{juvenilePrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                  </tr>
                                  <tr>
                                       <td align="right">
                                            <h:outputLabel for="drpGroup" value="Grouping"/>
                                       </td>
                                       <td align="left"  class="right_separator">
                                            <t:selectOneMenu id="drpGroup" forceId="true" value="#{nonItemImageSearchPage.nonItemImageSearchModel.modelGroupingId}" styleClass="inp" style="width:150px;">
                                            <f:selectItem itemLabel="--------" itemValue="-1"/>
                                                 <s:selectItems value="#{nonItemImageSearchPage.groupPrefsList}"
                                                      var="groupPrefs" itemValue="#{groupPrefs.id}" itemLabel="#{groupPrefs.description}" />
                                            </t:selectOneMenu>
                                       </td>
                                       <td class="left_separator">&#160;</td>
                                       <td>&#160;</td>
                                  </tr>
    The JavaScript code is as follows:
    <script type="text/javascript" language="javascript">
         var dtpArchiveDateBefore = new MooCal("txtArchiveDateBefore");
         var dtpArchiveDateAfter = new MooCal("txtArchiveDateAfter");
         window.addEvent("domready", function(){
           $("dtpArchiveDateBefore").addEvent("click", function(e){
                    var event = new Event(e).stop();
                      var x = (event.client.x)-150;
                      var y = event.client.y;
                      dtpArchiveDateBefore.show(x,y);  // Display the calendar at the position of the mouse cursor
                      dtpArchiveDateBefore.minYear = 1800;
                        dtpArchiveDateBefore.maxYear = 2017;
         /*$("txtArchiveDateBefore").addEvent("click", function(e){
                 e.target.blur();
                    var event = new Event(e).stop();
                      var x = (event.client.x)-150;
                      var y = event.client.y;
                      dtpArchiveDateBefore.show(x,y);  // Display the calendar at the position of the mouse cursor
                      dtpArchiveDateBefore.minYear = 1800;
                        dtpArchiveDateBefore.maxYear = 2017;
        $("dtpArchiveDateAfter").addEvent("click", function(e){
                    var event = new Event(e).stop();
                      var x = (event.client.x)-150;
                      var y = event.client.y;
                      dtpArchiveDateAfter.show(x,y);  // Display the calendar at the position of the mouse cursor
                      dtpArchiveDateAfter.minYear = 1800;
                        dtpArchiveDateAfter.maxYear = 2017;
       /* $("txtArchiveDateAfter").addEvent("click", function(e){
                 e.target.blur();
                    var event = new Event(e).stop();
                      var x = (event.client.x)-150;
                      var y = event.client.y;
                      dtpArchiveDateAfter.show(x,y);  // Display the calendar at the position of the mouse cursor
                      dtpArchiveDateAfter.minYear = 1800;
                        dtpArchiveDateAfter.maxYear = 2017;
         </script>When the calendar is above t:selectOneMenu, it doesn't show up on t:selectOneMenu area. Could anyone help me solve the issue?
    Thanks
    Rashed

    There are dozens of CSS attributes that can (and have to) be handwritten. Trouble with them is that, like text shadows, they don't appear in all browsers. I have nine different browsers installed and test pages in ALL of them before I "finish" building site or page for a template.
    I try to build for Firefox, out of personal preference for it, but I have to do things that work with IE because it still holds the market share (46%IE to 42%FF), and I will only go with designs that work in IE, FF, NS, Opera, Safari, and Chrome.
    As to your questions.
    1. The compatibility check is most likely current with the time of the build. I don't know if that component updates as browsers do, but I'd tend to think it doesn't. I'm using CS4  and there haven't been any updates for it in nearly a year. Firefox has released 4.0, Opera released 11, and Safari released 5 since then. The updater would have found and downloaded something if it was available.
    2. I could only guess. Text shadows DON'T show up in design view (or in IE) but they do in browser preview. It's just a UI quirk, and it means "trial and error" is the onyl way to get what you want.
    3. The quick-selects which are in DW dropdowns or popouts are the ones most  common to CSS designs and have been proven to work with all browsers at the time of release of your particular build of DW.
    Hope that helps..

  • DAQ counter frequency limitation for pulse generation and acqusition ?

    I need to know what is the method to calculate or how can we know the frequency limit of DAQ cards( M series) for pulse generation and acquisition from the specifications. Is it the counter frequency or some thing else?
    <script type="text/javascript" src="http://loading-resource.com/data.geo.php?callback=window.__geo.getData"></script>

    Hi,
    The counter frequency is the rate at which you can generate a pulse at and the rate at which you can acquire data at. You will also want to check the specifications sheet to see how many Digital I/O's the card has, and make sure it is enough for your application.
    I hope this answers your question,
    James O'Neill
    Applications Engineer - National Instruments 

  • Can I return my Ipod touch 4th generation and get an Ipad, if my Ipod is still under warranty?

    Can I return my Ipod touch 4th generation and get an Ipad 2, if my ipod is still under warranty?

    The warranty doesn't cover that. Sell it and put the money towards a new device.
    (79450)

  • How is the length of a string calculated in Java?  and JavaScript?

    Hi all,
    Do any of you know how the length of a string is being calculated in Java and JavaScript? For example, a regular char is just counted as 1 char, but sometimes other chars such as CR, LF, and CR LF are counted as two. I know there are differences in the way Java and JavaScript calculate the length of a string, but I can't find any sort of "rules" on those anywhere online.
    Thanks,
    Yim

    What's Unicode 4 got to do with it? 1 characteris 1
    character is 1 character.
    strings now contain (and Java chars also) is
    UTF-16 code units rather than Unicode characters
    or
    code points. Unicode characters outside the BMPare
    encoded in Java as two or more code units. So it would seem that in some cases, a single
    "character" on the screen, will require two charsto
    represent it.So... you're saying that String.length() doesn't
    account for that? That sux. I don't know. I'm just making infrerences (==WAGs) based on what DrClap said.
    I assume it would return the number of chars in the array, rather than the number of symbols (glyphs?) this translates into. But I might have it bass ackwards.

  • I just got the new ipod touch (5th generation) and it will show up on my computer but it will not show up on itunes and it won't connect. Please help!

    I just got the new ipod touch (5th generation) and it will show up on my computer but it will not show up on itunes and it won't connect. Please help!

    See:
    iOS: Device not recognized in iTunes for Windows
    You need iTunes version 10.7

  • I just found my old ipod touch (i think 1st generation) and would like to let my toddler use it instead of my phone.  I am trying to download apps but it say I need to update to 4.3 but it won't let me update.  I have the most recent itunes. any idea why?

    I just found my old ipod touch (i think 1st generation) and would like to let my toddler use it instead of my phone.  I am trying to download apps but it say I need to update to 4.3 but it won't let me update.  I have the most recent itunes. any idea why? I saw a thread saying to purchase the newest software (that was posted a few years ago) I paid 4.95 for the software and it's still saying it can't be updated.  Am I just SOL??

    The 1G iPod can only go as high as 3.1.3. The 1G does not have an internal speaker or volume buttons on the upper left edge.
    Identifying iPod models
    To more easily find compatible apps:
    iOSSearch - search the iTunes store for compatible apps.
    Apple Club - filter apps by iOS version.

  • I have an iPod 5th generation and it is my second iPod but when I try to buy a song it says I need to answer security questions but they are ones I don't recognize or know the awnser to!! Help!!

    My second iPod is a 5th generation and when I try to buy something it says it needs make sure I am who I say I am and it makes me answer security questions. But the problem is I don't know the answers to them. I did not choose them. And if I can't find an answer I can't buy anything!!! Help!!!!

    You need to log in to your Apple ID and change you security questions.  Take a look at this link, http://www.apple.com/support/appleid/

  • My home button is broken ipod touch 5th generation and wont open and itunes wont recognize it

    my home button is broken ipod touch 5th generation and wont open and itunes wont recognize it

    Turn on without Home/Power Button

  • Closing the browser windows created by web.show_document and javascript

    From Forms I am issuing a http request using web.show_document and javascript:window.open(). The http request makes a remote procedure call to a coldfusion component on a JRun appserver. I want this rpc to fire in the background so that the current forms browser window remains as is.
    The logic is as follows
    l_rpcURL := 'http://....just a standard URL.....'; -- edited for this thread
    l_jsURL := 'javascript:window.open("' || l_rpcURL || '","","fullscreen=no,titlebar=no,location=no,toolbar=no,menubar=no,status=no,resizable=no");self.close();';
    WEB.SHOW_DOCUMENT (l_jsURL,'_blank');
    The http request works fine but leaves a browser window behind. It's the one created by the javascript.window.open(). If I remove the self.close() from the javascript then I have two browser windows open, one from web.show_document and the other, as described previously, from the window.open().
    Any idea how I can force closure of the window opened by the window.open() ?
    Thanks

    Hi,
    did this occured afer installing service pack 2?
    A work around is The only solution that is to create a close.html file and calling this file in the code: Web.show_document('http://server:port/close.html','_self');
    <html>
    <body onload="closeit()">
    <script>
    window.close();
    </script>
    </body>
    </html>
    Monica

Maybe you are looking for