メッセージバンドルへのダイナミックコール?
-
29-09-2019 - |
質問
非常にシンプルなJSF 2.0プロジェクトがあります。
Rushmore山の写真を表示するためのindex.xhtmlファイルがあります。このページでは、写真をクリックして、「respress.xhtml」に移動したいと思います。問題ありません。単純なアクション= "" ...
私の問題は、メッセージバンドルファイル(Messages.Properties)が静的キーと値で設定されていることです。
jeffersonPageTitle=Thomas Jefferson
rooseveltPageTitle=Theodore Roosevelt
lincolnPageTitle=Abraham Lincoln
washingtonPageTitle=George Washington
そして、私の「President.xhtml」ファイルでは、クリックしたものに応じてこれらのタイトルを表示したいと思います。
<h:form>
<span class="presidentPageTitle">#{msgs['rushmore.president'],PageTitle}</span>
<br />
<h:graphicImage library="images" name="jefferson.jpg" styleClass="leftImage" />
<span class="presidentDiscussion">#{msgs.washingtonDiscussion}</span>
<br />
<h:commandLink action="index" styleClass="backLink">${msgs.indexLinkText}</h:commandLink>
</h:form>
上記のコードの2行目は私の問題です。Java-CodeのGet-Methodを参照する方法がわかりません。コードはこちら:
@ManagedBean // or @Named
@RequestScoped
public class Rushmore {
private String outcome = null;
private Rectangle washingtonRect = new Rectangle(70, 30, 40, 40);
private Rectangle jeffersonRect = new Rectangle(115, 45, 40, 40);
private Rectangle rooseveltRect = new Rectangle(135, 65, 40, 40);
private Rectangle lincolnRect = new Rectangle(175, 62, 40, 40);
public Rushmore() {}
public void handleMouseClick(ActionEvent e) {
FacesContext context = FacesContext.getCurrentInstance();
String clientId = e.getComponent().getClientId(context);
Map<String, String> requestParams = context.getExternalContext().getRequestParameterMap();
int x = new Integer((String) requestParams.get(clientId + ".x")).intValue();
int y = new Integer((String) requestParams.get(clientId + ".y")).intValue();
outcome = null;
if (washingtonRect.contains(new Point(x, y))) {
outcome = "washington";
}
if (jeffersonRect.contains(new Point(x, y))) {
outcome = "jefferson";
}
if (rooseveltRect.contains(new Point(x, y))) {
outcome = "roosevelt";
}
if (lincolnRect.contains(new Point(x, y))) {
outcome = "lincoln";
}
System.out.println(requestParams.keySet());
}
public String getPresident() {
return outcome;
}
public String navigate() {
if(outcome != null) {
return "president";
}
else return null;
}
}
それは私がrestrand.xhtmlファイルで到達しようとしているgetpresidentの方法です...
どんな助けも大歓迎です:)
解決
使用する c:set
.
<html xmlns:c="http://java.sun.com/jsp/jstl" ...>
...
<c:set var="pageTitle" value="#{rushmore.president}PageTitle" />
<span class="presidentPageTitle">#{msgs[pageTitle]}</span>
所属していません StackOverflow