Views for LanguagesController

src/main/webapp/WEB-INF/views/Languages/index.jsp:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://easyweb4j.sourceforge.net/easyweb4j" prefix="e" %>

<a href="${contextRoot}/Languages/add">Add New</a>
<p />
<span style="color: green">${flash['languageSuccess']}</span>
<p />
<table>
    <tr>
        <th>Name</th>
        <th>Statically Typed</th>
        <th>Dynamically Typed</th>
        <th>Execution Environment</th>
        <th>Paradigms</th>
        <th></th>
    </tr>
    <c:forEach items="${languages}" var="language">
        <tr>
            <td>
                <c:out value="${language.name}" />
            </td>
            <td>${(language.staticallyTyped) ? 'Yes' : 'No'}</td>
            <td>${(language.dynamicallyTyped) ? 'Yes' : 'No'}</td>
            <td>
                <c:out value="${language.executionEnvironment.name}" />
            </td>
            <td>
                <c:forEach items="${language.paradigms}" var="paradigm">
                   <c:out value="${paradigm.name}," /> 
                </c:forEach>
            </td>
            <td>
               <a href="${contextRoot}/Languages/edit/${language.id}">Edit</a>
               <e:postLink onclick="if(!window.confirm('Are you sure?')) return false;" 
                           href="${contextRoot}/Languages/delete/${language.id}">
                   Delete
               </e:postLink>
            </td>
        </tr>
    </c:forEach>
</table>

src/main/webapp/WEB-INF/views/Languages/languageForm.jsp:

<%@taglib uri="http://easyweb4j.sourceforge.net/easyweb4j" prefix="e" %>

<label for="name">Name:</label>
<input type="text" id="name" name="language.name" value="${language.name}" />
<span style="color: red"><e:message key="${language.errors['name']}" /></span>

<p />

Typing:
<e:booleanCheckBox name="language.staticallyTyped" id="static" state="${language.staticallyTyped}" />
<label for="static">Static</label>
<e:booleanCheckBox name="language.dynamicallyTyped" id="dynamic" state="${language.dynamicallyTyped}" />
<label for="dynamic">Dynamic</label>
<span style="color: red"><e:message key="${language.errors['typing']}" /></span>

<p />

<label for="environment">Execution Environment:</label>
<e:collectionSelect name="language.executionEnvironment" id="environment" items="${environments}"
                    currentValue="${language.executionEnvironment}" valueProperty="id"
                    labelProperty="name" prompt="-- Select --" />
<span style="color: red"><e:message key="${language.errors['executionEnvironment']}" /></span>

<p />

<label for="paradigms">Paradigms:</label>
<e:collectionSelect name="language.paradigms" id="paradigms" items="${paradigms}"
                    currentValue="${language.paradigms}" valueProperty="id"
                    labelProperty="name" size="4" multiple="multiple" />
<span style="color: red"><e:message key="${language.errors['paradigms']}" /></span>

<p />

<input type="submit" value="Save" />
<a href="${contextRoot}/Languages">Back</a>

src/main/webapp/WEB-INF/views/Languages/add.jsp:

<form action="${contextRoot}/Languages/create" method="post">
    <%@include file="languageForm.jsp" %>
</form>

src/main/webapp/WEB-INF/views/Languages/edit.jsp:

<form action="${contextRoot}/Languages/update/${language.id}" method="post">
    <%@include file="languageForm.jsp" %>
</form>