makumba Attributes#
Attributes in Java Server Pages#
Java Server Pages use attributes to keep the state of the application (request-, session- and context-scoped). These can be accessed and modified e.g.- via Java
<% Object name = request.getAttribute("name"); %>; <% pageContext.setAttribute("someName", "John Dorian"); %> <% pageContext.setAttribute("now", new java.util.Date()); %>
- via JSTL
<c:out value="${name}"/> <c:set var="someName" value="John Dorian" />
- via JSP Tags
<jsp:useBean id="now" class="java.util.Date"/>
- via JSP EL (reading only)
${name}
Attributes in makumba#
makumba builds upon this its own notion of Attributes that keep the state of a makumba application. They represent the "environment" of that Makumba applicationThe typical example is a JSP page during execution, with its HTTP CGI parameters and session, request and page attributes as attributes. Makumba can access these attributes in queries and forms, such as <mak:list> or <mak:input> tags; they are denoted by a leading "$".
If we consider an URL such as employeeProfile.jsp?employee=hhi4xw7 with a CGI parameter 'employee', Makumba can use this parameter in a query such as:
<mak:list from="company.Employee e" where="e=$employee"> ... </mak:list>
Likewise, if there is a session-scope Attribute "activeUser", Makumba can use it in the same manner:
<h1>My Profile</h1> <mak:list from="company.Employee e" where="e=$activeUser"> ... </mak:list>
Note that when accessing these parameters and attributes with Java or JSTL, you will have to use different methods:
- Parameters:
Java: <% Object employee = request.getParamter("employee"); %> JSP EL: ${param.employee}
- Attributes:
Java: <% Object activeUser = session.getAttribute("activeUser"); %> JSP EL: ${activeUser}
Technical background#
Since other kinds of attributes are possible, the attribute specification is kept HTTP-independent. Makumba Business Logics code sees the attributes as an org.makumba.Attributes