3

f:param を使用した出力リンクがある xhtml ページがあります。

<h:outputLink value="#{formService.getStartFormData(v_process.id).formKey}"> Start <f:param name="processDefinitionKey" value="#{v_process.key}"></f:param> </h:outputLink>

ターゲットページには、ビューパラメータがあります

f:metadata>
        <!-- bind the key of the process to be started -->
        <f:viewParam name="processDefinitionKey" value="#{processList.processDefinitionKey}"/> 

    </f:metadata>

私の豆は

@Named
@RequestScoped
public class ProcessList{

private String processDefinitionKey ; 

@Inject
private RepositoryService repositoryService;

@Produces
@Named("processDefinitionList")
public List<ProcessDefinition> getProcessDefinitionList() {
return repositoryService.createProcessDefinitionQuery()
        .list();
}

public void setProcessDefinitionKey(String processDefinitionKey1) {
  System.out.println("setProcessDefinitionKey "+processDefinitionKey1);
this.processDefinitionKey = processDefinitionKey1;
}

public String getProcessDefinitionKey() {
  System.out.println("getProcessDefinitionKey______ "+processDefinitionKey);
return processDefinitionKey;
}


}

processDefinitionKey が null です。セッターが呼び出されていません。何が問題なのですか? 追加する web.xml または faces-config.xml に構成はありますか? 同じプロジェクトで、私はプライムフェイスとスプリングセキュリティを使用しています

これが全ページです

<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
template="/WEB-INF/templates/template.xhtml">

<ui:define name="metadata">
    <f:metadata>
        <!-- bind the key of the process to be started -->
        <f:viewParam name="processDefinitionKey" value="#{processList.processDefinitionKey}" />
    </f:metadata>
</ui:define>

<ui:define name="content">      

返信ありがとうございます。うまくいきませんでした。

4

2 に答える 2

2

すでに投稿されているように、名前空間を変更してみてください。私の場合(glassfish 4.0)とリンクされている場合、それはそうでなければなりませんでした

xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"

しかし、試してみてください

xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"

これは私にとってTomcatで機能しました。

誰かがなぜこれがこのようになっているのか考えているなら、私はここに喜んでいます. 2番目のバリアントは、私がここで読んだ正しいものでなければなりません。

于 2013-08-07T13:29:14.440 に答える