Теги Struts по сравнению с JSTL

Можно получить системные переменные с vbs сценарием, но Вам нужен bat сценарий для фактического изменения текущих переменных среды, таким образом, это - комбинированное решение.

Создают файл, названный resetvars.vbs содержащий этот код, и сохраняют его на пути:

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("System")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
path = oEnv("PATH")

set oEnv=oShell.Environment("User")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next

path = path & ";" & oEnv("PATH")
oFile.WriteLine("SET PATH=" & path)
oFile.Close

создают другое имя файла resetvars.bat, содержащий этот код, то же местоположение:

@echo off
%~dp0resetvars.vbs
call "%TEMP%\resetvars.bat"

, Когда Вы захотите обновить переменные среды, просто работайте resetvars.bat

<час>

Апологетика :

Эти две основных проблемы у меня было предложение этого решения, были

a. я не мог найти простой способ экспортировать переменные среды из vbs сценария назад к командной строке, и

b. переменная окружения PATH является конкатенацией пользователя и системных переменных ПУТИ.

я не уверен, что общее правило для конфликтующих переменных между пользователем и системой, таким образом, я выбрал делать пользовательскую систему переопределения, кроме переменной ПУТИ, которая обрабатывается конкретно.

я использую странный vbs+bat+temporary bat механизм для работы вокруг проблемы экспорта переменных от vbs.

Примечание : этот сценарий не удаляет переменные.

Это может, вероятно, быть улучшено.

ДОБАВИЛ

, Если необходимо экспортировать среду от одного cmd окна до другого, используйте этот сценарий (давайте назовем его exportvars.vbs):

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("Process")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
oFile.Close

Выполнение exportvars.vbs в окне Вы хотите экспортировать от [1 128], затем переключиться на окно, которое Вы хотите экспортировать в [1 129], и тип:

"%TEMP%\resetvars.bat"
8
задан Edward Shtern 31 July 2009 в 19:07
поделиться

2 ответа

Это зависит от использования вами пользовательских тегов - некоторые теги, например те, которые создают раскрывающийся список параметров, намного проще использовать и читать, чем эквивалентный тег цикла c: foreach. Однако JSTL распространен во многих приложениях, поэтому, если вы перестанете использовать настраиваемые теги struts в другом веб-приложении, вы, вероятно, все равно будете иметь доступ к JSTL.

0
ответ дан 6 December 2019 в 00:08
поделиться

Просто:

  • Теги Struts доступны только для проектов, использующих Struts
  • Теги JSTL могут использоваться где угодно и даже могут взаимодействовать с другими фреймворками, такими как Spring или JSF
4
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: