gpt4 book ai didi

java - 使用请求对象获取 JSP 自定义标记属性的参数值时出错

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:01 26 4
gpt4 key购买 nike

我正在努力在 JSP 中制作自定义标记以提供数据库连接。我制作了标签并将其与适当的 java 类链接。但我无法获取从 index.jsp 页面传递给此自定义标记的参数。这是文件。

form.jsp

<%@ page import="java.util.*,java.io.*;" language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Get User Data</title>
</head>
<body bgcolor="#AABBCC">
<form name="form" action="dbConnect.jsp" method="POST">
<table>
<tr>
<td>JDBC Driver</td>
<td> <input type="text" name="jdbcDriver" size="30"> </td>
</tr>
<tr>
<td>JDBC URL</td>
<td><input type="text" name="serverURL" size="30"></td>
</tr>
<tr>
<td>User Name</td>
<td><input type="text" name="username" size="30"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" size="30"></td>
</tr>
<tr>
<td>Query</td>
<td><input type="text" name="query" size="30"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit_query" value="Submit" ></td>
</tr>
</table>
</form>
</body>
</html>

customTag.tld

<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<tag>
<name>dbTag</name>
<tag-class>com.appperfect.training.CustomDBTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>jdbcDriver</name>
<required>true</required>
<type>java.lang.String</type>
<fragment>false</fragment>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>serverURL</name>
<required>true</required>
<type>java.lang.String</type>
<fragment>false</fragment>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>username</name>
<required>true</required>
<type>java.lang.String</type>
<fragment>false</fragment>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>password</name>
<required>true</required>
<type>java.lang.String</type>
<fragment>false</fragment>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>query</name>
<required>true</required>
<type>java.lang.String</type>
<fragment>false</fragment>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

dbConnect.jsp

<%@ page import="java.util.*,java.io.*,java.sql.*" %>
<%@ taglib prefix="db" uri="WEB-INF/CustomTag.tld" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String driver, url, uname, pass, query;
driver = "jdbcDriver";
url = "serverURL";
uname = "username";
pass = "password";
query = "query";
%>
<db:dbTag
jdbcDriver="<%= request.getAttribute(driver).toString() %>"
serverURL="<%= request.getAttribute(url).toString() %>"
username="<%= request.getAttribute(uname).toString() %>"
password="<%= request.getAttribute(pass).toString() %>"
query="<%= request.getAttribute(query).toString() %>">
</db:dbTag>
</body>
</html>

customDBTag.java

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;

import java.io.*;

public class CustomDBTag extends SimpleTagSupport {

private String jdbcDriver, serverURL, username, password, query;

public void setJdbcDriver(String driver) {
this.jdbcDriver = driver;
}

public void setServerURL(String url) {
this.serverURL = url;
}

public void setUsername(String uname) {
this.username = uname;
}

public void setPassword(String pass) {
this.password = pass;
}

public void setQuery(String que) {
this.query = que;
}

StringWriter sw = new StringWriter();

@Override
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();

if(jdbcDriver!=null)
out.println(jdbcDriver);
if(serverURL!=null)
out.println(serverURL);
if(username!=null)
out.println(username);
if(password!=null)
out.println(password);
if(query!=null)
out.println(query);
}

}

任何人都可以建议我做错了什么吗?

PS:我在 Mac OS X 10.7 上使用 Eclipse EE Indigo、Apache Tomcat 7 和 Mysql 5

最佳答案

您正在发送参数并读取属性

将其更改为读取参数

jdbcDriver=<%= request.getParameter("driver")%>
<小时/>

另请参阅

关于java - 使用请求对象获取 JSP 自定义标记属性的参数值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com