Есть ли способ сделать функцию connectTodb() с помощью jstl?

Есть ли способ использовать jstl внутри функции java? По сути, я хочу просто вызвать функцию connectTodb() на странице jsp, где мне нужно соединение. Однако я не знаю, как это сделать.

Могу ли я сделать это, например?

    connectTodo() {
       <sql:setDataSource driver="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost/database_name"
                   var="localSource" 
                   user="database_user"  
                   password="database_password"/>
    }

Как мне вызвать этот метод в моем файле jsp? Или, если я не могу этого сделать, как мне подключиться к базе данных только с помощью функции? Помогите мне, спасибо!


person user3211403    schedule 24.04.2015    source источник


Ответы (1)


Вы можете писать функции на JSP, но обычно это не рекомендуется. Обычно вы создаете теги и/или фрагменты. Вы разместили один,

<sql:setDataSource driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/database_name"
    var="localSource" 
    user="database_user"  
    password="database_password"/>

Это доступно в jsp с блоком <%@ %>, например

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<html>

Вы можете написать свой собственный файл тегов, например initDB.tag

<%@ taglib prefix="db" tagdir="/WEB-INF/tags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<sql:setDataSource driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/database_name"
    var="localSource" 
    user="database_user"  
    password="database_password"/>

и тогда вы можете использовать его как

<db:initDB />

Наконец, вы можете проверить, есть ли на вашем сервере пул соединений, к которому вы можете получить доступ из имени JNDI.

person Elliott Frisch    schedule 24.04.2015
comment
привет, еще несколько вопросов относительно ответа. если я создал свой собственный файл тегов, а затем использовал его, как указано выше, смогу ли я использовать var=localsource в отдельном теге? Например, если у меня есть запрос ‹sql:query dataSource=${localSource} var=result›, будет ли он работать? - person user3211403; 24.04.2015