JSP sayfalarında, GET parametrelerini dönüştürme ve doğrulamadan sonra ilgili yönetilen fasulye'ye ayarlayan biretiketine sahibim.<f:viewParam> Doğrulama/dönüştürme hataları <f: yerel görünümü> yerelleştirmez, ancak varsayılan olarak yerel ayarı
Dönüştürme veya doğrulama hataları oluşursa, uygun bir hata iletisi kaynak paketinden alınır ve <p:messages>
(<p:growl>
veya <h:messages>
da olabilir) görüntülenir.
Uygulama çok dillidir. Bu nedenle, farklı bir dil seçildiğinde, bu dilde bir mesaj görüntülenmeli, ancak her zaman mesajı varsayılan yerel ayar en
'a (İngilizce için) göre görüntüler.
Test.xhtml:
<!DOCTYPE html>
<html lang="#{localeBean.language}"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<f:view locale="#{localeBean.locale}">
<f:metadata>
<f:viewParam name="id" converter="#{myConverter}" />
</f:metadata>
<h:head>
<title>Test</title>
</h:head>
<h:body>
<h:messages />
</h:body>
</f:view>
</html>
dönüştürücü: <f:viewParam>
gelen mesajlar hariç
@FacesConverter("myConverter")
public final class MyConverter implements Converter
{
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value)
{
ResourceBundle bundle = context.getApplication()
.evaluateExpressionGet(context, "#{messages}", ResourceBundle.class);
String message = bundle.getString("id.conversion.error");
throw new ConverterException(
new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null));
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value)
{
throw new UnsupportedOperationException(); // Not relevant in this problem.
}
}
, sorun yoktur. Diğer tüm mesajlar, kullanıcı tarafından seçilen dilde görüntülenir.
ile ilgili özel bir şey var mı?
Bu yöntemi 'assessmentExpressionGet (String expression)' göremiyorum. Sadece "public T assessmentExpressionGet (FacesContext içeriği, String ifadesi, Class extends T> expectedType) yerine ELException" ifadesini görebiliyorum. Orada mı? –
Tiny
Maalesef, aşırı basitleştirilmiş bir örnek yayınladım (aslında, org.omnifaces.util.Faces' den statik bir içe aktarma kullanıyordum) ve yanlış bir şekilde yöntemin işiyle ilgili ipucunu anlayacağınızı varsaymıştım. Cevabı güncelledim. – BalusC
Görünüm meta verileri işlendiğinde, dış f: görünüm etiketi dikkate alınmaz, ancak teorik olarak böyle olmamalı, çünkü f: görünüm özel bir şeydir. Bana bir böcek gibi görünüyor. – lu4242