JavaEE
DisplayTag & Struts2
Subtabla en base a lista anidada
<display:table name="platformList" id="platform" pagesize="0" requestURI="" class="displaytag">
<display:column property="name" title="Platform" />
<s:set name="formats" value="#attr.platform.formats" />
<display:column title="Formats">
<display:table name="formats" id="format" class="simple sublist">
<s:set name="screenRes" value="#attr.format.screenWidth + 'x' + #attr.format.screenHeight" />
<s:set name="wpRes" value="#attr.format.wallpaperWidth + 'x' + #attr.format.wallpaperHeight" />
<display:column title="Screen Resolution"><s:property value="screenRes"/></display:column>
<display:column title="Wallpaper Resolution"><s:property value="wpRes"/></display:column>
<display:column title="File"><s:file name="pic" label="Pic" theme="simple"/></display:column>
</display:table>
</display:column>
</display:table>
SessionID en Action
public class MyActionClass extends ActionSupport implements ServletRequestAware {
//...
// Objeto HttpServletRequest asociado a la request. Inyectado por el interceptor servletConfig
private HttpServletRequest servletRequest;
/**
* Implementación de interfaz ServletRequestAware
* @param servletRequest Objeto HttpServletRequest asociado a la request
*/
@Override
public void setServletRequest(HttpServletRequest servletRequest) {
this.servletRequest = servletRequest;
}
public HttpServletRequest getServletRequest() {
return this.servletRequest;
}
//...
@Override
public String execute() throws Exception {
//...
// Obtenemos el ID de la sesión
String sessionID = this.servletRequest.getSession().getId();
//...
}
}
Mapa de Session
public class MyActionClass extends ActionSupport implements SessionAware {
//...
// Mapa de parámetros de la sesión. Inyectado por el interceptor servletConfig
private Map<String, Object> session;
/**
* Implementación de interfaz SessionAware
* @param session El mapa de session Servlet
*/
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
public Map<String, Object> getSession() {
return this.session;
}
//...
@Override
public String execute() throws Exception {
//...
// Ponemos y cogemos datos de la sessión
getSession().put("objeto", objeto);
objeto = getSession().get("objeto");
//...
}
}
JSP
Prepoblado de combo desde el propio JSP
<s:select label="Priority" name="wallpaper_priority" list="#{-2:'Very Low',-1:'Low',0:'Normal',1:'High',2:'Very High'}" />
Inyectar cabecera HTTP en JSP
<% response.setHeader("P3P", "CP=\"HONK\""); %>