Приветсвую Всех!! Использую glassfish, PrimeFaces. Есть шаблон :
| Код | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xml:lang="en" lang="en"> <f:view contentType="text/html" locale="ru"> <h:head title="Главная страница справкабат"> <f:facet name="first"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="cache-control" content="no-cache"/> <meta http-equiv="expires" content="0"/> </f:facet> <ui:insert name="head"/> </h:head> <h:body> <h:panelGroup layout="block" styleClass="slogan"> <h:outputText value="Информационная система"/> </h:panelGroup>
<h:form id="mainForm" prependId="false"> <h:panelGrid columns="2" columnClasses="chaptersMenuColumn,chaptersContentColumn"> <h:panelGroup layout="block"> <h:graphicImage library="images" name="logo.png" styleClass="logo" title=" логотип"/>
<!--Далее должно быть дерево-->
<p:tree id="bookTree" value="#{mainController.root}" var="node" selectionMode="single" selection="#{mainController.selectedNode}"> <p:ajax event="select" listener="#{mainController.onNodeSelect}"/> <p:treeNode expandedIcon="ui-icon-folder-open" collapsedIcon="ui-icon-folder-collapsed"> <h:outputText value="#{node.name}"/> </p:treeNode> <p:treeNode type="chapteritem" icon="ui-icon-document"> <h:outputText value="#{node.name}"/> </p:treeNode> </p:tree>
<!--конец дерева-->
</h:panelGroup> <h:panelGroup layout="block" id="panelGroup2"> <ui:insert name="chapterItem"/> </h:panelGroup> </h:panelGrid> </h:form>
<h:outputStylesheet library="css" name="layout.css"/> </h:body> </f:view>
</html>
|
Дерево формируется в контроллере:
| Код | @Named("mainController") @RequestScoped public class MainViewController implements Serializable{
private static final String NODE_TYPE = "chapteritem"; private TreeNode root ; private TreeNode selectedNode;
private UploadedFile file;
@Inject PhonesServiceLocal phonesServiceFacade;
public PhonesServiceLocal getPhonesServiceFacade() { return phonesServiceFacade; }
public void setPhonesServiceFacade(PhonesServiceLocal phonesServiceFacade) { this.phonesServiceFacade = phonesServiceFacade; }
public MainViewController() { root = new DefaultTreeNode("Root",null);
TreeNode firstNode = new DefaultTreeNode(new SiteTreeNode("Раздел_1", null),root); TreeNode secondNode= new DefaultTreeNode(new SiteTreeNode("Раздел_2", null),root); TreeNode thirdNode = new DefaultTreeNode(new SiteTreeNode("Раздел_3", null),root); TreeNode fourthNode = new DefaultTreeNode(new SiteTreeNode("Раздел_4", null),root);
constructFirstNode(firstNode); constructSecondNode(secondNode); constructThirdNode(thirdNode); constructFourthNode(fourthNode);
}
private void constructFirstNode(TreeNode firstNode) { new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("Подраздел_1","#"),firstNode); new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("Импорт","notebook/importPhones.xhtml"),firstNode);
new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("Подраздел_2","#"),firstNode);
}
private void constructSecondNode(TreeNode secondNode) { new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("еще какая нить лабуда","#"),secondNode); }
private void constructThirdNode(TreeNode thirdNode) { new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("Фигня еще одна","#"),thirdNode); }
private void constructFourthNode(TreeNode fourthNode) { new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("бла блаб бла","#"),fourthNode); new DefaultTreeNode(NODE_TYPE, new SiteTreeNode("балабабалала","#"),fourthNode);
}
public TreeNode getSelectedNode() { return selectedNode; }
public void setSelectedNode(TreeNode selectedNode) { this.selectedNode = selectedNode; }
public TreeNode getRoot() { return root; }
public void onNodeSelect(NodeSelectEvent event) { if (root == event.getTreeNode().getParent()) { return; } for (TreeNode treeNode : root.getChildren()) { if (treeNode.equals(selectedNode.getParent())) { treeNode.setExpanded(true); } else { treeNode.setExpanded(false); } }
FacesContext fc = FacesContext.getCurrentInstance(); fc.getApplication().getNavigationHandler().handleNavigation(fc, "null", "/views/" + ((SiteTreeNode) event.getTreeNode().getData()).getView() + "?faces-redirect=true");
}
public void saveTable() {
} public void handleFileUpload(FileUploadEvent event) { UploadedFile file = event.getFile() ; MessageUtil.addInfoMessage("Файл " + file.getFileName() + " загружен успешно");
phonesServiceFacade.loadItemsFromUploadedFile(file);
}
}
|
Так вот в браузере русский язык забитый в xhtml шаблоне отображается нормально, а то что формируется в контроллере отображается кракозябрами (Телефоны). В чем проблема? куда копать?
И еще: на мой взгляд, формирование надписей, названий разделов в контроллере идиологические не верно(при изменении надписи, необходимо перекомпилировать приложение). Как вывести надмиси и тп. в отедльный файл, чтобы в нем все поменять и не перекомпилировать? Заранее спасибо
зы. пишу в интеллиджеа, кодировка везде стоит utf-8 |