我希望你能解决我的问题。
out.println("<li class='has-sub'><a href='#'>" + k1.getKName() + "</a>\n");
我有一个JSP并且在这个java代码中。结果是左侧的导航有几个类别和子类别。所以这是一个类别元素。如你所见,我没有在href中放任何东西。我想要做的是,当我点击这个类别时,我会在右侧的内容空间中获得此类别的文章。
那么,为了给内容空间提供结果,我需要做些什么来处理servlet或JSP。我当然不能只在那里调用一个servlet,因为这意味着我明显地得到了href中servlet的结果。
如果这是一个愚蠢的问题,我很抱歉,但我真的不知道如何解决这个问题:(
答案 0 :(得分:1)
除了之前的评论之外,您不需要Web服务。您可以使用ajax和普通的Servlet来完成此操作。您可能希望使用JQuery来帮助Ajax部分。这里是关于load()函数的一些JQuery文档,它们将:
从服务器加载数据并将返回的HTML放入匹配的 元件。
你的链接看起来像(如果k1是某个范围内的bean,那么你可以使用EL而不是scriptlet):
<a href='javascript:loadData(${k1.id});'>${k1.name}</a>
您的Javascript看起来像:
function loadData(id){
var url = "/pathToMyServlet?id=" + id;
$( "#result" ).load( url );
}
将调用您的Servlet并将返回的HTML插入到页面上具有ID“结果”的元素。
然后,您的Servlet需要生成数据并转发到一个简单的JSP,它返回结果(并且只返回结果),即它不需要是完全形成的HTML页面,而应该只包含结果表或其他任何内容。
停止使用scriptlet: