2010-08-09 6 views
2

У меня есть две флажки с именами таблиц, когда установлен любой флажок. Я хочу сохранить это имя таблицы в строке java, которую я могу использовать в запросе для получения данных из эту таблицу или обновить эту таблицу. Я использовал функции onClick, а также получил значение флажка, но не получал доступ к нему в остальной части кода, чтобы использовать это значение в запросе БД.Установка значения переменной строки java в зависимости от выбранного html

ответ

1

Я предполагаю, что у вас есть HTML-код вроде следующего:

<input type="checkbox" name="use_table1" /> 
<input type="checkbox" name="use_table2" /> 

На кода на стороне сервера Java, вы можете запрос:

String tableName = null; 
if (request.getParameter("use_table1") != null) 
    tableName = "tbl_1"; 
if (request.getParameter("use_table2") != null) 
    tableName = "tbl_2"; 

Обратите внимание, что «внешние» имена отличаются от имена реальных таблиц. Никто в Интернете не должен знать ваши настоящие имена таблиц. И, самое главное, никто не должен позволять читать произвольную таблицу из вашей базы данных. Вот почему я использовал код if-then-else для выбора имени таблицы.

0

Просто укажите имя таблицы как значение. Браузер будет отправлять только пары имени-значения проверенных в качестве параметров запроса.

<input type="checkbox" name="tablename" value="table1"> 
<input type="checkbox" name="tablename" value="table2"> 
<input type="checkbox" name="tablename" value="table3"> 
<input type="checkbox" name="tablename" value="table4"> 

В Servlet, вы можете захватить их HttpServletRequest#getParameterValues().

String[] checked = request.getParameterValues("tablename"); 

просто :) Нет необходимости в ненужных JavaScript хаки/обходные пути, который не будет работать в клиентов JS-инвалидов. Это один из многих unknown features of HTML.

Смежные вопросы