Прежде всего, JSF является генератором кода HTML. Поэтому в JSF это не так, как в «простом» HTML. Вы должны просто не смотреть на структуру файловой системы в проекте webapp при создании ссылок в HTML. Вы должны посмотреть на общедоступную структуру URL этих ресурсов. Это именно веб-браузер, которому приходится вызывать и загружать эти ресурсы, а не веб-сервер. Веб-браузер абсолютно ничего не знает о структуре файловой системы на веб-сервере. Это не относится к проектам JSF. Это относится ко всем веб-проектам.
Относительные URL-адреса не относятся к их местоположению в структуре файловой системы в проекте webapp. Они относятся к URL-адресу запроса открытого HTML-документа, точно такого, который вы видите в адресной строке браузера. Следует отметить, что, когда в документе HTML присутствует элемент
, все относительные URL-адреса в документе HTML, начиная с /
, будут относиться к нему.
Учитывая настройку webapp, которая настроена с FacesServlet
отображением шаблона URL-адреса *.xhtml
и развертывается до localhost:8080
с контуром пути /context
, URL-адрес файла /index.xhtml
в корневом каталоге проекта будет следующим:
http://localhost:8080/context/index.xhtml
---- -------------- ------- -----------
| | | `-- resource
| | `-- path (can be multiple folders)
| `-- domain (and port)
`-- scheme
Когда вы в настоящее время находитесь в http://localhost:8080/context/index.xhtml
, и хотите создать ссылку на http://localhost:8080/context/calculate/calculate.xhtml
, то все приведенные ниже пути в конечном итоге указывают на точно такой же абсолютный URL.
//
, относится к текущей схеме. link
/
, относится к домену. link
/
, относительно пути. link
И когда вы в настоящее время находитесь в http://localhost:8080/context/calculate/calculate.xhtml
и хотите установить ссылку на http://localhost:8080/context/index.xhtml
, применяются те же правила:
//
, относится к текущей схеме. link
/
, относится к домену. link
/
, относительно пути. link
Как вы, вероятно, понимаете, относительный URL, начинающийся с /
, не зависит от текущего пути и домена. Итак, это URL-адрес, который вы действительно хотите использовать повсюду в своем веб-приложении, не беспокоясь о проблемах обслуживания при изменении домена или перемещении файлов на сервере. Остается только динамичность контекстного пути. Вероятно, вы уже знаете, что это значение не контролируется внутри webapp. Вы действительно хотели бы избежать его жесткого кодирования. Однако вы можете легко позволить JSF распечатать его программно с небольшой помощью EL. Это просто доступно HttpServletRequest#getContextPath()
, а HttpServletRequest
находится в EL, доступном как неявный объект #{request}
.
link
link
Достаточно утомительно повторять это каждый раз. К счастью, JSF предлагает компонент
для самой цели генерации элемента HTML с текущим контуром контекста автоматически.
Обратите внимание, что outcome
должен представлять идентификатор вида JSF, который не обязательно совпадает с URL-адресом (он будет, когда вы нажмете FacesServlet
на *.xhtml
). Вы можете даже опустить расширение файла здесь, JSF автоматически обнаружит его как часть механизма «неявной навигации».
Обратите внимание:
Несколько кнопок отправки php различные действия
Поместите этот скрипт на свою страницу:
<script>
function submitForm(action)
{
document.getElementById('columnarForm').action = action;
document.getElementById('columnarForm').submit();
}
</script>
Измените код ввода:
<input type="image" name="camper" onclick="submitForm('formindb_hoh_1.php')" value="camper" src="../images/apps/camperBtn.png" class="submit_button" />
<input type="image" name="medical" onclick="submitForm('formindb_hoh_2.php')" value="medical" src="../images/apps/medicalBtn.png"class="submit_button" />
Наконец, я получил свой ответ, потратив больше часа. Я пробовал использовать различные методы, такие как случай переключения, jquery и JavaScript. Но я использовал только тег HTML5 formaction
, и теперь моя форма две кнопки отправки работают в двух местах.
Код:
<input type="submit" class="btn btn-success" value="Pay Now" name="submit" style="width: 100%; letter-spacing: 1px; color: #fff; border: none;padding: 10px;" formaction="example.php">
<button type="submit" class="btn btn-success" name="submit" style="width: 100%; letter-spacing: 1px; color: #fff; border: none;padding: 10px; margin-top: 15px;" formaction="mail.php"> Button</buttton>
Нет JS, используйте HTML5.
Измените кнопки отправки, чтобы использовать новую формулу атрибута кнопки HMTL5:
<button type="submit" name="camper" formaction="formindb_hoh_1.php">Camper</button>
<button type="submit" name="camper" formaction="formindb_hoh_2.php">Medical</button>
Update your browser.
– Jasom Dotnet
19 December 2015 в 08:13