Question

J'ai un très simple projet JSF 2.0.

J'ai un fichier index.xhtml pour me montrer une photo du Mont Rushmore. Sur cette page, je peux cliquer sur l'image et je veux qu'il aille à « president.xhtml » - pas de problème à ce sujet. Une simple action = "" ...

Mon problème est que mon fichier faisceau de message (messages.properties) est mis en place avec les touches statiques et les valeurs, ex:.

jeffersonPageTitle=Thomas Jefferson
rooseveltPageTitle=Theodore Roosevelt
lincolnPageTitle=Abraham Lincoln
washingtonPageTitle=George Washington

Et dans mon fichier « president.xhtml », je veux montrer ces titres en fonction de ce que je cliqué.

<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>

Deuxième ligne dans le code ci-dessus est mon problème - je ne sais pas comment faire référence à la méthode get dans mon code java. Code est ici:

@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;
 }
}

Il est la méthode getPresident je suis en train d'atteindre dans le fichier president.xhtml ...

Toute aide serait appréciée:)

Était-ce utile?

La solution

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top