java – Primefaces update破坏了变形金刚
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Primefaces update破坏了变形金刚,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3532字,纯文字阅读大概需要6分钟。
内容图文
![java – Primefaces update破坏了变形金刚](/upload/InfoBanner/zyjiaocheng/786/33e19c2cf936467a9f57c9a81002dbf8.jpg)
编辑:tl; dr:保存变音符号时,它们会被破坏(ä变成¤).我现在意识到,问题的其余部分与问题没有任何关系.
.
我正在通过JBoss,Hibernate,Infinispan Cache,derby,Maven和Primefaces构建一个webapp.
我显示一个从数据库中获取数据的页面,该数据库中包含正确的数据(使用变音符号).它在a中正确显示
< p:dataTable id =“dt1”var =“as”value =“#{aSBean.elementList}”...>
当从表中选择一个条目时会弹出一个对话框.对话框代码的主要部分是
<p:dialog header="AS Detail" widgetVar="asDialog" resizable="false" id="asDlg"
showEffect="fade" hideEffect="fade" modal="true" styleClass="detailDialog" >
<h:panelGrid id="display" >
<h:outputText value="Bemerkung" />
<h:inputText value="#{aSBean.selectedElement.bemerkungTxt}" />
<h:outputText value="Bearbeiter" />
<h:outputText value="#{fehlerBean.selectedElement.bearbeiterNr}" />
</h:panelGrid>
<h:panelGrid id="diaBtnDisplay">
<p:commandButton value="Speichern" update=":form1:dt1" id="save" validateClient="true" actionListener="#{aSBean.save}"/>
<p:commandButton value="Abbrechen" id="cancel">
<f:ajax event="click" onevent="asDlg.hide()" />
</p:commandButton>
</h:panelGrid>
</p:dialog>
现在,Abbrechen-CommandButton中甚至没有更新属性,但是当我按下此按钮时,dataTable仍然会更新.如果我通过右上角的X离开对话框,则不会.
但是当我按下Abbrechen时,dataTable会更新,我的ä变成了¤.但它只会对所选元素这样做.这是我的支持bean代码的一部分:
public Arbeitsschluessel selectedElement = new Arbeitsschluessel();
public Arbeitsschluessel newElement = new Arbeitsschluessel();
public Arbeitsschluessel getSelectedElement() {
return selectedElement;
}
public void setSelectedElement(Arbeitsschluessel selectedValue) {
if (selectedValue != null) {
this.selectedElement = selectedValue;
}
}
public List<Arbeitsschluessel> getElementList() {
return elementList;
}
所以绝对没什么特别的.我的HTML页面以<?xml version =“1.0”encoding =“UTF-8”开头?>我还有以下内容< meta http-equiv =“content-type”content =“text / html; charset = utf-8”/>
我在按下Abbrechen按钮后调试了更新过程,对于我的第n个元素,as var的内容是错误的. callstack每次看起来都一样,所以我不能说价值被破坏的确切点.
如果我通过一个按钮(来自数据库的dao.findAll)重新加载数据表,那么所有内容都会再次正确显示,除非我将错误的值保存到数据库中.因此,数据库值不会被破坏.任何帮助赞赏!
编辑:打开对话框的代码:
<p:commandButton id="selectButton" update=":form1:display" oncomplete="PF('asDialog').show()" icon="" title="View">
<f:setPropertyActionListener value="#{as}" target="#{aSBean.selectedElement}" />
</p:commandButton>
解决方法:
我找到了答案.必须使用CharacterEncodingFilter
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharacterEncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setContentType("text/html; charset=UTF-8");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() { }
}
然后将以下行添加到WEB-INF文件夹中的web.xml:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>your.package.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
内容总结
以上是互联网集市为您收集整理的java – Primefaces update破坏了变形金刚全部内容,希望文章能够帮你解决java – Primefaces update破坏了变形金刚所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。