I'm newbish on Struts2 and can't find the answer to the following question online.
Here's the process I'm currently trying to create.
First the user sends an user ID or a contract ID, and I fetch informations in my Oracle database. These informations are then showed to the user in the form of a list. Within each row, it's possible to modify one information via a radio button. The radio's value is preselected to the corresponding fetch'd value. The radio's name is a concatenation of the differents primary keys of my table (3).
No problem so far. The struggle starts now. I want to get for each row the value of the radio's name and the selected value. I found solutions for that but you need getters on the radio's name hard coded in the Java bean.
Can anyone help ?
Here is the Struts 2 form :
<s:form id="updateform" theme="simple" action="UpdateInterlocuteurADP">
<table>
<thead>
<tr>
<th scope="col"><s:text name="parametrage_recherche_interlocuteur_adp_form_devis" /></th>
<th scope="col"><s:text name="parametrage_liste_interlocuteur_adp_col_interlocuteur" /></th>
<th scope="col"><s:text name="parametrage_liste_interlocuteur_adp_col_type_alerte" /></th>
<th scope="col"><s:text name="parametrage_liste_interlocuteur_adp_col_canal" /></th>
<th scope="col"><s:text name="parametrage_liste_interlocuteur_adp_col_mobile" /></th>
<th scope="col"><s:text name="parametrage_liste_interlocuteur_adp_col_email" /></th>
</tr>
</thead>
<tbody>
<input type="hidden" name='resultSearch' value="resultatInterlocuteurADP.list">
<s:iterator value="resultatInterlocuteurADP.list" status="resStatus">
<tr class="result-list-row-even">
<td align="center"><s:property value="idDevis"/></td>
<td align="center"><s:property value="interlocuteur"/></td>
<td align="center">
<s:if test="%{'SC_ALER_DERI'.equals(typeService)}">Dérive</s:if>
<s:if test="%{'SC_ALER_DEPA'.equals(typeService)}">Dépassement</s:if>
<td align="center">
<s:radio list="canaux" value="canal" name="%{cleConcat}"/>
</td>
<td align="center"><s:property value="numeroMobile"/></td>
<td align="center"><s:property value="adresseEmail"/></td>
</tr>
</s:iterator>
</tbody>
</table>
</br>
<s:submit onClick="return updateButtonPressed()" theme="simple" id="ok"
value="%{getText('parametrage_liste_interlocuteur_adp_button_submit')}" />
Related
(I have looked on google, here.. and havent been able to find the answer that could help me).
Goal : Website to be entered as a click able web link
- Link is retrieved from DB as a varchar(100)
Tried all kinds of different solutions.. without any luck - Maybe one of you guys can help me out ? :). thank you in advance.
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Address</th>
<th>City</th>
<th>Zip</th>
<th>Website</th>
<th>Email</th>
<th>Phone</th>
<th>Location</th>
<th>Agelimit</th>
</tr>
</thead>
<tbody>
<tr th:each="sps: ${sp}">
<td th:text="${sps.venueId}"/>
<td th:text="${sps.name}"/>
<td th:text="${sps.address}"/>
<td th:text="${sps.city}"/>
<td th:text="${sps.zip}"/>
<td th:text="${sps.website}"/>
<td th:text="${sps.email}"/>
<td th:text="${sps.phone}"/>
<td th:text="${sps.location}"/>
<td th:text="${sps.ageLimit}"/>
</tr>
</tbody>
</table>
You can use any type of tag with Thymeleaf. Is this what you want?
<td>
<a th:href="${sps.website}" th:text="${sps.website}" target="_blank" />
</td>
<table class="table hover" id="resultTable">
<thead>
<tr>
<th rowspan="1" class="checkbox-col"><input type="checkbox" id="ohrmList_chkSelectAll" name="chkSelectAll" value=""></th>
<th rowspan="1" style="width:400" class="header">Report Name</th>
<th rowspan="1" style="width:95"><span class="headerCell"></span></th>
<th rowspan="1" style="width:95"><span class="headerCell"></span></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><input type="checkbox" id="ohrmList_chkSelectRecord_5" name="chkSelectRow[]" value="5"></td> <td class="left">PIM Sample Report</td>
<td class="left">Run</td>
<td class="left">Edit</td>
</tr>
<tr class="even">
<td><input type="checkbox" id="ohrmList_chkSelectRecord_6" name="chkSelectRow[]" value="6"></td> <td class="left">Sample Report</td>
<td class="left">Run</td>
<td class="left">Edit</td>
</tr>
</tbody>
</table>
I'm a beginner to selenium, so I need a help to click a link (Run)of a Record from multiple Records in the table contains multiple Rows of different class with same class name for each column. I have attached the code snippet.
I tried this Xpath but is not working:
//table[#class='table hover']/tbody/tr/td[text()='PIM Sample Report'] and ./td[text()='Run']
can someone help me to figure out this?
Try to use below XPath :
//td[.="PIM Sample Report"]/following-sibling::td[.="Run"]/a
This should fetch the link "Run" preceded by td with text "PIM Sample Report"
I am creating a table displaying following values,
<tr>
<th scope="col"><bean:message key="label.booking.history.received" /></th>
<th scope="col"><bean:message key="label.booking.history.dealt" /></th>
<th scope="col"><bean:message key="label.booking.history.customer" /></th>
<th scope="col"><bean:message key="label.booking.history.report" /></th>
</tr>
<logic:iterate id="itemDetails" indexId="index" name="bookingHistorySearchForm" property="results.currentPage" >
<tr class="even">
<td><bean:write name="itemDetails" property="recived"/></td>
<td><bean:write name="itemDetails" property="dealt"/></td>
<td><bean:write name="itemDetails" property="customer"/></td>
<td><bean:write name="itemDetails" property="downloadLink"/></td>
</tr>
</logic:iterate>
Now, I want to show 4th column as a hyperlink and it will call an action and send row number as a parameter.
I tried using
<td>
<html:link action="/pages/bookings/details/bookingHistoryDownload" paramId="index" property="<%=selectImgButton%>" >
<bean:message key="link.booking.viewHistory"/>
</html:link>
</td>
but it is not sending the value of index.
In the hyperlink you should define two attributes one is paramId that will contain a name of the parameter and paramName which will hold the value. So, to send an index as a parameter you don't need a property attribute.
<html:link action="/pages/bookings/details/bookingHistoryDownload" paramId="index" paramName="${index}">
<bean:message key="link.booking.viewHistory"/>
</html:link>
I am loading a map of values into ServletContext during start of the application/server
HashMap<String, List<String>> cfsUfsMap = new HashMap<String, List<String>>();
//some operations
application.setAttribute("UDM_UFS_CFS_MAP", cfsUfsMap); //application = ServletContext
I need to use this map directly in JSP page, for which I have done this
<s:set name="udm_cfs_ufs_map" value="#application.UDM_UFS_CFS_MAP" />
<table class="first" width="100%" border="0" cellpadding="0" id="sups_assignedservices_info_table">
<tr>
<th width="30%">Assigned service name </th>
<th width="15%">CFS Code </th>
<th width="15%">Status </th>
<th width="20%">Date </th>
<th width="20%">UDM </th>
</tr>
<s:iterator value="#sups_services.services">
<s:set name="ufs_list" value="#udm_cfs_ufs_map.['top.code']" />
<tr>
<td class="light"><s:property value="top.name"/> </td>
<td class="light"><s:property value="top.code"/> </td>
<td class="light"><s:property value="top.status"/> </td>
<td class="light"><s:property value="top.date"/> </td>
<td class="light"><s:property value="#udm_cfs_ufs_map.size()" /> - <s:property value="#ufs_list.size()" /></td>
</tr>
</s:iterator>
As you see, I am trying to get the values (List) from map using key which's top.code
However I am getting original map size but not the list size based on key.
Any idea what's missing/going wrong
Done.
I solved it myself. I am posting my mistakes and the correct solution. SO down the line it might be useful to someone
to access servletContext attributes
<s:set name="udm_cfs_ufs_map" value="#application.UDM_UFS_CFS_MAP" />
for fetching the content from the map based on key
<s:iterator value="#sups_services.services">
<s:set name="ufs_list" value="#udm_cfs_ufs_map[top.code]" />
<tr>
<td class="light"><s:property value="top.name" /></td>
<td class="light"><s:property value="top.code" /></td>
<td class="light"><s:property value="top.status" />
</td>
<td class="light"><s:property value="top.date" /></td>
<td class="light"><s:iterator value="ufs_list">
<s:property />
<br />
</s:iterator></td>
</tr>
I'd like to know if there's any way to send data to the server for the selected rows using the checkboxes I've put on those rows? I mean , how can I send only the data of those selected rows to the server?
Here's the html code I use:
<table>
<thead>
<tr class="tableheader">
<td width="10%"></td>
<td width="30%">Vehicle</td>
<td width="40%">Driver</td>
<td width="10%">Mileage</td>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="item">
<tr>
<td align="center">
<input type="checkbox" name="selectedItems"
value="c:out value="${item.numberPlate}"/>"/>
</td>
<td align="left"><c:out value="${item.numberPlate}"/></td>
<td align="left"><c:out value="${item.driver.fullName}" /></td>
<td align="left"><input type="text" name="mileage" value="" /></td>
</tr>
</c:forEach>
</tbody>
</table>
I really hope you can give some guidance on this.
Thanks in beforehand.
When handling the request use request.getParameterValues("selectedItems"). And I don't think it's needed to add [] to names