在JSP中编写URL
可以说我当前的URL是: /app.jsp?filter=10&sort=name
= 10& /app.jsp?filter=10&sort=name
。
我在JSP中有一个分页组件,其中应包含以下链接:
/app.jsp?filter=10&sort=name&page=xxx
。
如何通过向当前URL添加新参数在JSP中创建有效的URL? 我不想在JSP中使用Java代码,也不想使用以下URL:
/app.jsp?filter=10&sort=name&?&page=xxx
,或/app.jsp?&page=xxx
等。
好的,我找到了答案。 第一个问题是我必须保留URL中的所有当前参数并仅更改page
参数。 为此,我必须遍历所有当前参数并添加我不想更改为URL的参数。 然后我添加了我想要更改或添加的参数。 所以我最终得到了这样的解决方案:
这将在请求中创建与page
参数无关的漂亮且干净的URL。 这种方法的好处是URL可以是任何东西。
要根据当前URL构造新URL,首先需要从request
对象获取当前URL 。 要在JSP中访问request
对象,请使用JSP表达式语言定义的pageContext
隐式对象 :
${pageContext.request.requestURL}
以下是在JSP页面中构造URL的简单示例:
test.jsp的
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> Test Page Testing URL construction
Go to page xxx Go to page xxx
此解决方案允许您根据当前URL是否已包含某些查询字符串来构造URL。 所以你们分别追加了
?${pageContext.request.queryString}&page=xxx
要不就
?page=xxx
到当前的URL。
JSTL和表达式语言用于实现对查询字符串的检查。 我们使用getRequestURL()
方法获取当前的URL。