1

Alfresco の JSP ファイルの文字列の一部を置き換えようとしています (そこにあります)。

具体的には、54 行目の「fullName」の後にさらに情報を表示したいと考えています。必要な情報は、「something」が必要な場所に「GROUP_something」という形式の文字列として r.id に格納されています。以下のスニペットのように、問題なく r.id を表示できますが、fn:replace を使用して GROUP_ プレフィックスを削除しようとすると、すぐに失敗します。

オリジナル:

<h:outputText id="user-txt" value="#{r.fullName}" rendered="#{r.isGroup}" />

同様に機能します:

<h:outputText id="user-txt" value="#{r.fullName} (#{r.id})" rendered="#{r.isGroup}" />

動作していません:

<h:outputText id="user-txt" value="#{r.fullName} (#{fn:replace(r.id, 'GROUP_', '')})" rendered="#{r.isGroup}" />

完全なコード: http://pastebin.com/w8AXWUH1

完全なスタック トレースは次のとおりです。

javax.faces.FacesException: 194 行目で JSP ページ /jsp/dialog/container.jsp を処理中に例外が発生しました

191:
192:
193:
194: " />
195:
196:
197:


スタックトレース:
のせいで:
org.apache.jasper.JasperException: 194 行目で JSP ページ /jsp/dialog/container.jsp を処理中に例外が発生しました

191:
192:
193:
194: " />
195:
196:
197:


スタックトレース:
のせいで:
org.apache.jasper.JasperException: javax.faces.FacesException: で encodeEnd を呼び出し中に例外が発生しました: {Component-Path: [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/dialog/container.jsp][Class: javax.faces.component.html.HtmlForm,Id: ダイアログ][クラス: javax.faces.component.UINamingContainer,Id: ダイアログ本体][クラス: org.alfresco.web.ui.common.component.UIPanel,Id:ユーザーパネル][クラス: org.alfresco.web.ui.common.component.data.UIRichList,Id: ユーザーリスト][クラス: org.alfresco.web.ui.common.component.data.UIColumn,Id: _idJsp17][クラス: javax.faces.component.html.HtmlOutputText,Id: user-txt]}
のせいで:
javax.faces.FacesException: で encodeEnd の呼び出し中に例外が発生しました: {Component-Path: [クラス: javax.faces.component.UIViewRoot,ViewId: /jsp/dialog/container.jsp][クラス: javax.faces.component.html. HtmlForm,Id: dialog][Class: javax.faces.component.UINamingContainer,Id: dialog-body][Class: org.alfresco.web.ui.common.component.UIPanel,Id: users-panel][Class: org .alfresco.web.ui.common.component.data.UIRichList,Id: ユーザーリスト][クラス: org.alfresco.web.ui.common.component.data.UIColumn,Id: _idJsp17][クラス: javax.faces .component.html.HtmlOutputText,Id: ユーザー txt]}
のせいで:
javax.faces.FacesException: 次のパスのコンポーネントの値を取得できませんでした: {Component-Path: [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/dialog/container.jsp][Class: javax.faces.component .html.HtmlForm,Id: ダイアログ][クラス: javax.faces.component.UINamingContainer,Id: ダイアログ本体][クラス: org.alfresco.web.ui.common.component.UIPanel,Id: ユーザーパネル][クラス: org.alfresco.web.ui.common.component.data.UIRichList,Id: ユーザーリスト][クラス: org.alfresco.web.ui.common.component.data.UIColumn,Id: _idJsp17][クラス: javax.faces.component.html.HtmlOutputText,Id: user-txt]}
のせいで:
javax.faces.el.E​​valuationException: 式 '#{r.fullName} (#{fn:replace(r.id, 'GROUP_', '')})' の値を取得できません
のせいで:
javax.faces.el.ReferenceSyntaxException: 関数は式でサポートされていません。関数: fn:replace

他の回答(例:this oneまたはthis one)がこの正確な方法を提唱しているため、このエラーを理解できません。

関数 taglib も追加しました。

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

ヘッダーに。

どんな助けでも大歓迎です!

編集:環境に関する詳細情報:Tomcat 7.0.30をコンテナとして使用して、Alfrescoの「バンドル」バージョンを使用しています。次のバージョンのライブラリが使用されます。

  • JSF Apache MyFaces v1.1.8 (myfaces-api-1.1.8.jar および myfaces-impl-1.1.8.jar)
  • JSP Tomcat の組み込み Jasper (jasper.jar)
  • EL Tomcat のビルトイン Jasper-EL (el-api.jar および jasper-el.jar 経由)だと思いますが、 Alfresco には commons-el.jar (Specification-Version: 2.0 および Implementation-Version: 1.0) もバンドルされています。
4

0 に答える 0