Nano Hash - криптовалюты, майнинг, программирование

Struts JSP/html вставляет текущую дату

Мой вопрос очень похож на этот: возможно ли получить доступ к переменной struts2 в скриптлете jsp?

На моей странице .jsp у меня есть форма, в которой я хотел бы установить текстовое поле на текущую дату. Моя единственная проблема заключается в том, что «значение» не поддерживает выражения времени выполнения при использовании Struts, что имеет смысл, я хочу, чтобы в JSP было как можно больше Java. Но это заставляет меня изо всех сил пытаться вывести переменную из действия. В настоящее время я работаю на Tomcat v7.0 и Eclipse Java EE IDE для веб-разработчиков. Версия: Kepler Service Release 2.

на моей странице .jsp у меня есть:

   <s:set var="currentDate" value="currentDate"/>
   <s:property value="currentDate"/>

   <s:form action= "updateAction">
  <s:textfield name="dateUpdated" key="label.dateUpdated" size="20" value="%{currentDate}" />
   <s:submit method="execute" key="submit"/>
   </s:form>

Теперь у меня есть три действия: одно для перехода на эту страницу (ToPageAction), одно для отправки формы (UpdateAction), одно для получения переменной currentDate (GetCurrentDateAction).

Кажется, я схожу с ума >.‹

в любом случае, действие для получения переменной currentDate называется GetCurrentDateAction и выглядит так:

 public class GetCurrentDateAction extends ActionSupport {

SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public String currentDate = date.toString();

public String getCurrentDate(){
    return currentDate;
}
public void setVariable(String currentDate){
    this.currentDate=currentDate;
}
public String execute() throws Exception{
    return SUCCESS;

}
}

дополнительно в struts.xml у меня есть:

 <action name="getCurrentDateAction"
class="net.upsmon.struts2.action.GetCurrentDateAction">
<result name="success">AlertPersistencyView.jsp</result>
</action>

Я прочитал вопрос, на который я ссылался много-много раз, и пытался правильно отформатировать свои собственные стойки, но обнаружил, что теряюсь. Я не уверен, что ответы просто вводят в заблуждение, или я просто чего-то не понимаю, я чувствую, что эту проблему не может быть слишком сложно решить. на моей странице .jsp у меня есть тег свойства, чтобы доказать себе, что я получил переменную в .jsp, но это еще не сработало. И, кроме того, мое текстовое поле пусто. Любые советы для меня, чтобы получить эту переменную в моем .jsp? Есть ли какая-либо дополнительная информация, которую я могу предоставить для решения? Я понимаю основы Struts, и любые советы приветствуются.

Дополнительная информация: я также просматривал это блог, чтобы разобраться в моей проблеме, но до сих пор не придумал решения.

20.06.2014

Ответы:


1

Если вы используете JSP, что, насколько я понимаю, вы делаете на основе формата заголовка вашего вопроса, я бы отформатировал его так (в зависимости от того, как вы хотите, чтобы ваша дата выглядела, меняется способ построения даты) . Вы могли бы сделать это так

<%@page import="java.text.SimpleDateFormat, java.util.Calendar, java.text.DateFormat"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>Date Tester</title>
     </head>
     <body>
         <%
             DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
             Calendar cal = Calendar.getInstance();           
         %>
        <form>
            <label for="date">Your Text Field: </label><br/>
            <textarea type="" name="date" value="" >Today's Date: <%=    dateFormat.format(cal.getTime()) + "\n" %></textarea>
        <!-- The rest of your form here -->
        </form>
    </body>
</html>

Надеюсь, это поможет! если нет, оставьте комментарий, и я попробую еще раз.

20.06.2014
  • это работает прекрасно, за исключением того, что я действительно хотел бы получить его внутри s: textfield, и когда я это делаю, я получаю: Согласно TLD или директиве атрибута в файле тега, значение атрибута не принимает никаких выражений. 20.06.2014
  • @user3761189 user3761189 Я изменил приведенный выше код, чтобы использовать текстовое поле вместо тега ввода для пользователя, попробуйте и посмотрите, как вам это нравится. Дай мне знать 20.06.2014
  • Я думаю, что моя проблема в том, что я использую стойки - большое спасибо за вашу помощь. Я собираюсь изучить это более подробно и посмотреть, смогу ли я понять это, хотя вы были очень полезны 20.06.2014
  • Я обновил свой вопрос, чтобы он больше соответствовал моей реальной проблеме, мой вопрос раньше был плохо написан, извините за путаницу. 02.07.2014

  • 2

    Вы можете попробовать использовать Стандартную библиотеку тегов JSP и всегда стараться избегать элементов Scriplet.

    Образец кода:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
    
    <jsp:useBean id="today" class="java.util.Date" />
    
    <textarea>
        <fmt:formatDate value="${today}" pattern="yyyy-MM-dd HH:mm:ss" />
    </textarea>
    
    20.06.2014
  • Это умная идея, но поскольку я использую struts, значение не будет поддерживать выражение времени выполнения:/ 24.06.2014
  • Ты пробовал это? что это <%= dateFormat.format(cal.getTime()) + "\n" %>. Скрипт в 21 веке. 24.06.2014
  • Вы не ответили. Ты пробовал это? 24.06.2014
  • Извините за задержку, то, что вы опубликовали, все равно не будет работать, потому что это выражение времени выполнения, а тег значения не принимает выражения времени выполнения - я считаю, что решение должно включать структуру Struts и класс действий. 02.07.2014

  • 3
  • не могли бы вы включить текст, объясняющий этот код? иначе это не очень полезно 02.07.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..