Я делаю, как сказал DwB, и теперь я могу дать более подробную информацию о том, как вывести переменные в jstl.
сначала создайте пользовательский тег, вот код.
public class JSTLElDumpTag extends TagSupport {
@Override
public int doStartTag() throws JspException {
JspWriter out=pageContext.getOut();
try{
//out request attribute
ServletRequest request=pageContext.getRequest();
Enumeration it=request.getAttributeNames();
out.print("<div><h2>request scope</h2>");
while(it.hasMoreElements()){
Object next=it.nextElement();
out.print("<div>"+next+":"+request.getAttribute(next.toString())+",value type:"+request.getAttribute(next.toString()).getClass().getName()+"</div>");
}
out.print("</div>");
return super.doStartTag();
} catch (IOException e){
throw new JspException("Io exception occurred ");
}
}
}
в приведенном выше коде я сбросил все переменные запроса, включая его имя, значение и тип. Я думаю, что тип очень важен, когда мы имеем дело с числами.
далее нам нужно настроить наш файл tld.
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>date</short-name>
<!-- Invoke 'Generate' action to add tags or functions -->
<tag>
<name>eldump</name>
<tag-class>JSTLElDumpTag</tag-class>
<body-content>JSP</body-content>
</tag>
настроить этот файл tld в вашем web.xml
<jsp-config>
<taglib>
<taglib-uri>/tags</taglib-uri>
<taglib-location>/WEB-INF/datetag.tld</taglib-location>
</taglib>
</jsp-config>
имя файла: datetag.tld
теперь мы можем использовать в нашем jsp файле
<%@taglib prefix="bw" uri="/tags" %>
поместите выше в начало вашего jsp-файла, а в конце вашего jsp-файла вы используете
<bw:eldump></bw:eldump>
чтобы затем вывести ваши переменные.
Что я должен объявить, так это то, что в некоторых случаях нам нужно выгружать переменные в файле jsp, которые были объявлены тегом jstl cset, вы должны добавить атрибут scope = request, когда вы устанавливаете переменные или вышеописанный способ будет не сбрасывать эти переменные.
Надеюсь, это поможет вам, и если вы обнаружите некоторые ошибки в моем сообщении, ваше уведомление будет искренне оценено.