Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 同一视图id的不同规则_Java_Jsf 2_Prettyfaces - Fatal编程技术网

Java 同一视图id的不同规则

Java 同一视图id的不同规则,java,jsf-2,prettyfaces,Java,Jsf 2,Prettyfaces,我有一个jsf页面,它接收2到6个参数,我想让这个url看起来更好,所以我开始使用漂亮的面孔。当我为2个参数创建规则时,一切都很正常,但是当我创建第二个规则时,页面也正常工作,url与我希望的一样,但是我在Eclipse控制台中收到错误消息。 我想这是因为我试图为同一个视图id创建一个规则。。。可能吗 漂亮的配置: <url-mapping id="departamento"> <pattern value="/#{codDep}/#{departamento} "

我有一个jsf页面,它接收2到6个参数,我想让这个url看起来更好,所以我开始使用漂亮的面孔。当我为2个参数创建规则时,一切都很正常,但是当我创建第二个规则时,页面也正常工作,url与我希望的一样,但是我在Eclipse控制台中收到错误消息。 我想这是因为我试图为同一个视图id创建一个规则。。。可能吗

漂亮的配置:

  <url-mapping id="departamento">
   <pattern value="/#{codDep}/#{departamento} " />
   <view-id value="/departamento.jsf" />
  </url-mapping>

 <url-mapping parentId="departamento" id="sessao">
  <pattern value="/#{codSec}/#{secao}" />
  <view-id value="/departamento.jsf" />
 </url-mapping>
控制器方法:

 public void inicializar(ComponentSystemEvent event)
{
FacesContext context = FacesContext.getCurrentInstance();
if (!context.isPostback())
{

    departamento = new Departamento(Integer.parseInt(codigoDepartamento), descricaoDepartamento, null, null);
    }
  }
问题是它不应该传递这个参数“javax.faces.resource”
有时我甚至不知道它从哪里来的“css”。

我想这是因为JSF资源请求(包含
javax.faces.resource
)与您的模式匹配。PrettyFaces截取请求,并将请求路径的一部分写入bean

您必须更改您的模式,以便它只匹配您想要的URL,而不是JSF资源、CSS或图像文件之类的内容。您可以添加一些唯一的固定字符串前缀,如
/dep/
,如下所示:

<url-mapping id="departamento">
  <pattern value="/dep/#{codDep}/#{departamento} " />
  <view-id value="/departamento.jsf" />
</url-mapping>
有关详细信息,请参阅PrettyFaces文档的这一部分:


我猜发生这种情况是因为JSF资源请求(包含
javax.faces.resource
)与您的模式之一相匹配。PrettyFaces截取请求,并将请求路径的一部分写入bean

您必须更改您的模式,以便它只匹配您想要的URL,而不是JSF资源、CSS或图像文件之类的内容。您可以添加一些唯一的固定字符串前缀,如
/dep/
,如下所示:

<url-mapping id="departamento">
  <pattern value="/dep/#{codDep}/#{departamento} " />
  <view-id value="/departamento.jsf" />
</url-mapping>
有关详细信息,请参阅PrettyFaces文档的这一部分:


谢谢@chkal,在你回答问题之前,我做了你的第一个建议,效果很好,我现在就试试第二个。还有一个问题,我可以检索第一个参数(#{codDep}但是用prettyfaces隐藏它?因为它是一个数字,我不喜欢我的url是:www.url.com/1/departmento,因为在我的第二条规则中,它是:www.url.com/1/departmento/2/item。但是我不能删除这个参数,因为我在一个类中使用了preRenderView,我需要这个参数来搜索数据库。有什么建议吗?谢谢提前。如果您需要ID来加载数据库条目,那么您还必须将其包含在URL中。这就是PrettyFaces的概念。可书签URL包括应用程序呈现页面所需知道的任何内容。如果您不想包含ID且部门名称是唯一的,您可以考虑更改您的IDDatabase查询使用名称而不是id来加载它。谢谢@chkal,在回答之前我做了你的第一个建议,现在可以了,我将尝试第二个。还有一个问题,我可以检索第一个参数(#{codDep}但是用prettyfaces隐藏它?因为它是一个数字,我不喜欢我的url是:www.url.com/1/departmento,因为在我的第二条规则中,它是:www.url.com/1/departmento/2/item。但是我不能删除这个参数,因为我在一个类中使用了preRenderView,我需要这个参数来搜索数据库。有什么建议吗?谢谢提前。如果您需要ID来加载数据库条目,那么您还必须将其包含在URL中。这就是PrettyFaces的概念。可书签URL包括应用程序呈现页面所需知道的任何内容。如果您不想包含ID且部门名称是唯一的,您可以考虑更改您的IDDatabase查询以使用名称而不是id来加载它。
<url-mapping id="departamento">
  <pattern value="/#{ /[0-9]+/ codDep }/#{departamento} " />
  <view-id value="/departamento.jsf" />
</url-mapping>