例:
<h:commandLink action="#{proService.findPath}">
    <input type="image" id="img" />
    <f:param name="flag" value="javascript:document.getElementById('img').src"/>
</h:commandLink>
这样在后台得到的就是:javascript:document.getElementById('img').src;
真让人受不了,jsf可以读取js的返回值吗?主要我是想在web页面中动态加载一个图片,然后点击图片,能得到图片(单色图片)的RBG的值。
想先得到路径,然后后台代码得到RBG,
现在是想点击图片获取路径啊。

解决方案 »

  1.   

    可以, javascript和python, ruby等都属于动态语言, 支持动态执行
    相关的函数是eval()和exec()
      

  2.   

    比如: eval('alert("hello world")');但是, 写这样的语句的时候, 一定要注意掌握和控制好当前的全局和局部名称空间.
      

  3.   

    按照上面的说法,我的代码这应该改成这样:
    <h:commandLink action="#{proService.findPath}">
        <input type="image" id="img" />
        <f:param name="flag" value="eval(document.getElementById('img').src)"/>
    </h:commandLink>可是这样根本就没反应,不能运行,大哥想想办法哦……
      

  4.   

    <h:commandLink action="#{proService.findPath}"> 
        <input type="image" id="img" /> 
        <f:param name="flag" value="eval(document.getElementById('img').src)"/> 
    </h:commandLink>你这段代码干啥的我就不懂啊....js中可以动态执行是客户端的, 你这些应该属于服务端的东西了, 先讲明白你这段代码的输出是什么
      

  5.   

    学习中......楼主做过.net开发的话,千万别混了
      

  6.   

    被人鄙视了?
    这是J2EE中JSF,你知道不?
    不懂可以自己学习,看,别笑掉了别的大牙……
      

  7.   

    把图片设成超链接,点击图片把图片的路径发给服务器
    <f:param name="flag" value="eval(document.getElementById('img').src)"/> 
    上面的代码相当时url?flag=document.getElementById('img').src
    关键我是要用它document.getElementById('img').src把得到的值通过JSF传给服务器,jsf好像不支持。
    PS:你好像不懂JSF吧……