在我的JSP页面中,我从ArrayList中的sql语句中获取值,该列表将作为表内容创建。此列表中的一组值为url
。如何将此特定td元素(具有url的元素)转换为超链接操作项?
这是jsp代码
<table border="1" id="tableView">
<thead>
<th></th><th>ID</th><th>Name</th><th>Description</th><th>Active</th><th>Release Date</th><th>Url</th>
</thead>
<tbody>
<%
if(max==0)
{
%><tr><td></td><td colspan="5" class="viewa"><% out.println("No Records found."); %></td><%
}
else
{
for(int i=0;i<result.size();i++)
{
%><tr><td><input class="tablechkbox" type="radio" name="prodAlertsRad"/></td><%
List r=new ArrayList();
r=(List)result.get(i);
for(int j=0;j<r.size();j++)
{
%><td class="viewa"><%out.print(r.get(j));%></td><%
}
%></tr><%
}
}
%>
</tbody>
</table>
您可以在此处jsfiddle
进行测试答案 0 :(得分:1)
您需要对代码的这一部分进行更改。
for(int j=0;j<r.size();j++)
{
%><td class="viewa"><%out.print(r.get(j));%></td><%
}
要使您的网址作为超链接工作,您需要在您的td
内使用锚标记。此外,了解列表url
中r
所在的确切索引非常重要。因为在你的情况下,url位于最后一个索引处,我们可以通过这种方式修改代码 -
for(int j=0;j<r.size()-1;j++) //changed to size-1
{
%><td class="viewa"><%out.print(r.get(j));%></td><%
}
%><td class="viewa"><a href="<%out.print(r.get(r.size()-1));%>"><%out.print(r.get(r.size()-1));%></a></td><%
您可能需要做一些小的处理以避免indexOutOfBoundException
。我留下你这样做:)
答案 1 :(得分:1)
试试这个
for(int i=0;i<result.size();i++)
{
%><tr><td><input class="tablechkbox" type="radio" name="prodAlertsRad"/></td><%
List r=new ArrayList();
r=(List)result.get(i);
for(int j=0;j<r.size();j++)
{
if(j==r.size()-1){%>
<td class="viewa"><a href="<%out.print(r.get(j));%>"><%out.print(r.get(j));%></a>
<%}else{
%><td class="viewa"><%out.print(r.get(j));%></td><%}
}
%></tr><%
}