Paginacion junto con i18n
Muy buenas a todos resulta que estoy aplicandole paginacion a una web y tengo implementada la i18n y al cambiar de pagina me vuelve a poner el idioma por defecto, voy mostrar los codigos a ver si alguien me puede ayudar gracias
index.jsp
<div id="header-wrapper">
<div id="header-left"></div>
<div id="header-right">
<h:form id="search">
<h:commandLink id="register" value="Registrarse"
action="registrar" />
<h:commandLink id="sesionInic" value="Iniciar Sesion"
action="iniciar" />
<br />
<br />
<h:inputHidden value="#{filtroBean.filtro }"></h:inputHidden>
<h:inputText id="box" value="#{filtroBean.texto}" />
<h:commandButton id="button" image="/icos/buscar.png"
style="height: 26px; width: 31px;" />
<h:selectOneMenu id="idioma" value="#{idiomaBean.idioma}"
onchange="submit();"
valueChangeListener="#{idiomaAction.cambiarIdioma}">
<f:selectItems value="#{idiomaAction.idiomas}" />
</h:selectOneMenu>
</h:form>
</div>
</div>
</div>
<div id="content">
<c:set var="productos" value="${productoAction.productosPagination}" />
<c:forEach var="producto" items="${productos }">
<div class="entry">
<h2>${producto.marca.nombre }</h2>
<h:outputText value="#{producto.marca.nombre }" />
<img class="photo" src="fotos/${producto.id}.jpg" />
<c:forEach var="descripcion" items="${producto.descripcionRegion}">
<p>${fn:replace(descripcion.texto, saltoLinea, '<br />')}</p>
</c:forEach>
<h2>${producto.precio }</h2>
</div>
</c:forEach>
<c:if test="${not empty productos}">
<div id="pagination">
<c:if test="${pagination.currentPage > 1}">
<a href="?pagina=1"><img src="img/first.png" /></a>
<a href="?pagina=${pagination.currentPage - 1}"><img
src="img/previous.png" /></a>
</c:if>
<c:forTokens var="p" items="${pagination.pageList}" delims=",">
<c:choose>
<c:when test="${p eq pagination.currentPage}">
<span>${p}</span>
</c:when>
<c:otherwise>
<a href="?pagina=${p}">${p}</a>
</c:otherwise>
</c:choose>
</c:forTokens>
<c:if test="${pagination.currentPage < pagination.numberOfPages}">
<a href="?pagina=${pagination.currentPage + 1}"><img
src="img/next.png" /></a>
<a href="?pagina=${pagination.numberOfPages}"><img
src="img/last.png" /></a>
</c:if>
</div>
</c:if>
<c:if test="${empty productos}">
<br />
<h3>No hay productos.</h3>
</c:if>
</div>
ProductoAction
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
HttpSession session = request.getSession();
Pagination paginacion;
if (session.getAttribute("pagination") != null)
paginacion = (Pagination)session.getAttribute("pagination");
else
paginacion = new Pagination();
if (request.getParameter("pagina") != null) {
int pagina = Integer.parseInt(request.getParameter("pagina"));
paginacion.setCurrentPage(pagina);
}
FiltroBean filtroBean = (FiltroBean)session.getAttribute("filtroBean");
String texto = null;
if (filtroBean != null) {
String filtro = filtroBean.getFiltro();
texto = filtroBean.getTexto();
if (filtro != null && !filtro.equals(texto))
paginacion.setCurrentPage(1);
filtroBean.setFiltro(texto);
}
ProductoDAO dao = DAOFactory.getProductoDAO();
List<Producto> productos = dao.buscar(texto, paginacion);
session.setAttribute("pagination", paginacion);
request.setAttribute("saltoLinea", "\n");
return productos;
}
ProductoDAOImpl
@Override
public List<Producto> buscar(String texto, Pagination paginacion)
throws TiendaException {
List<Producto> productos = null;
try {
DetachedCriteria dc = DetachedCriteria.forClass(Producto.class);
Criteria criteria = dc.getExecutableCriteria(getSession());
if (texto != null) {
Criterion lhs = Restrictions.ilike("codigo", texto,
MatchMode.ANYWHERE);
Criterion rhs = Restrictions.ilike("referencia", texto,
MatchMode.ANYWHERE);
criteria.add(Restrictions.or(lhs, rhs));
}
if (paginacion != null) {
int paginas = (int) (Math.ceil((float) (criteria.list().size())
/ paginacion.getMaxResults()));
paginacion.setNumberOfPages(paginas);
criteria.setFirstResult(paginacion.getFirstResult());
criteria.setMaxResults(paginacion.getMaxResults());
}
//criteria.addOrder(Order.asc("id"));
productos = criteria.list();
} catch (Exception e) {
/*throw new TiendaException("Error al obtener entradas: "
+ e.getMessage());*/
e.printStackTrace();
}
return productos;
}
FacesConfig.xml
<locale-config>
<default-locale>es</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
</application>
<managed-bean>
<managed-bean-name>tablaListaBean</managed-bean-name>
<managed-bean-class>beans.datos.TablaListaBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>idiomaAction</managed-bean-name>
<managed-bean-class>beans.logica.IdiomaAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>idiomaBean</managed-bean-name>
<managed-bean-class>beans.datos.IdiomaBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>descripcionBean</managed-bean-name>
<managed-bean-class>beans.datos.DescripcionBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>usersBean</managed-bean-name>
<managed-bean-class>beans.datos.UsersBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>marcaAction</managed-bean-name>
<managed-bean-class>beans.logica.MarcaAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>marcaBean</managed-bean-name>
<managed-bean-class>beans.datos.MarcaBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>productoAction</managed-bean-name>
<managed-bean-class>beans.logica.ProductoAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>productoBean</managed-bean-name>
<managed-bean-class>beans.datos.ProductoBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>categoriaAction</managed-bean-name>
<managed-bean-class>beans.logica.CategoriaAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>filtroBean</managed-bean-name>
<managed-bean-class>beans.datos.FiltroBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>categoriaBean</managed-bean-name>
<managed-bean-class>beans.datos.CategoriaBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>clienteAction</managed-bean-name>
<managed-bean-class>beans.logica.ClienteAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>clienteBean</managed-bean-name>
<managed-bean-class>beans.datos.ClienteBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
No se si alguien sabra donde tengo el fallo si alguien me lo dijera se lo agradeceria mucho
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 7 semanas 6 días
hace 11 semanas 6 días
hace 19 semanas 3 días
hace 27 semanas 3 días
hace 30 semanas 1 día
hace 31 semanas 5 días
hace 34 semanas 6 días
hace 34 semanas 6 días
hace 40 semanas 6 días
hace 42 semanas 14 horas