当前位置: 首页 > 面试题库 >

在JSF中从URL获取参数的正确方法是什么

颛孙信厚
2023-03-14
问题内容

这是我的JSF页面:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

    <f:metadata>  
        <f:viewParam name="id" value="#{productDetailBean.id}" />  
    </f:metadata>

    <h:head>
        <title>Facelet Title</title>
    </h:head>

    <h:body>
        <h:outputText value="1=#{productDetailBean.id}" />
        <br/>
        <h:outputText value="2=#{param['id']}" />
        <br/>
        <h:outputText value="3=#{productDetailBean.param}" />
    </h:body>
</html>

和豆

import java.io.Serializable;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@ViewScoped
public class ProductDetailBean implements Serializable{

    private String id;

    public String getParam(){
        FacesContext context = FacesContext.getCurrentInstance();
        Map<String, String> paramMap = context.getExternalContext().getRequestParameterMap();
        String projectId = paramMap.get("id");
        return projectId;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

当我传递这样的参数时:/getshipment.xhtml?id=123
我得到输出

1 =
2 = 123
3 = 123

第二和第三种方法工作正常。为什么第一个不工作?什么是获取参数的正确方法


问题答案:

尝试使用GlassFish 4至少使用2.2.2。先前的2.2.x
Mojarra版本与新的http://xmlns.jcp.org/jsf/JSF名称空间存在众所周知的兼容性问题。



 类似资料:
  • 问题内容: 这些方法之间在功能上有区别吗? 编辑(从其他贡献者添加了此语法): 问题答案: 不,但第一个是首选样式。 编辑: 另一个选项是 此外,它还允许调用者使用varargs语法。

  • 本文向大家介绍jquery获取url参数及url加参数的方法,包括了jquery获取url参数及url加参数的方法的使用技巧和注意事项,需要的朋友参考一下 使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作,下面通过文字说明加代码分析的形式给大家解析,具体详情请看下文。 1、jquery获取url很简单,代码如下: 其实只是用到了javascript的基础的wind

  • 问题内容: 我发现了一些在servlet中获取ip的方法。但我不知道哪一个是正确的,为什么。 1: 2: 3: 问题答案: 答案很复杂。 如果您的Servlet在反向代理或负载平衡器后面的Web服务器上运行,则可以将该Web代理配置为注入请求标头,该标头提供了请求来自的IP地址。不同的反向代理将注入不同的标头。请查阅您的(前端)服务器的文档。 如果您的客户端使用(转发)代理,则它 可能会 插入标头

  • 中的数据如下: 我用这段代码获取数据帧中速度为0的数据,然后根据纬度、经度、年、月、日对数据帧进行分组。 分组后,获取每组的第一个和最后一个。如果第一个和最后一个之间的差异超过5分钟,则获取每组的第一行数据,并最终将这些数据保存到csv中。 我认为我的代码不够简洁。 我使用要获取数据帧中的第一行,我使用和获取特定列的第一个元素和最后一个元素。 还有更合适的方法吗? 我的代码:

  • 问题内容: 目标: 使用C#和SQL2008正确设置参数化的SQL插入语句 问题: for循环中使用了以下语句,因此必须清除这些值。运行此代码后,它指出在250附近有语法错误。代码如下 } 在此先感谢您的更正,评论和建议。 问题答案: 您不必在SQL代码中重新声明变量。这应该工作:

  • 本文向大家介绍jQuery获取URL请求参数的方法,包括了jQuery获取URL请求参数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery获取URL请求参数的方法。分享给大家供大家参考。具体如下: 调用方法如下: 希望本文所述对大家的jquery程序设计有所帮助。