На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> JSP по клику - новая картинка
    Есть вот такая jsp:
    ExpandedWrap disabled
      <jsp:useBean id="pics" class="Pics" scope="session" type="Pics" />
       
      <head>
          <link rel="stylesheet" type="text/css" href="style.css">
        <!--  <meta http-equiv="refresh" content="5"> -->
          </head>
      <html>
       
      <body>
       
      <%
         if(pics.getNext()){
          pics.nextIndex();
      %>
         <img src="<%=pics.nextPic()%>" alt="pic" />
         <h1><%=pics.nextPic()%> </h1>
       <%
         }else{
             pics.backIndex(); %>
          <img src="<%=pics.nextPic()%>" alt="pic" />
          <h1><%=pics.nextPic()%> </h1>
       
      <%
         }
      %>
       
      <form action="asd.jsp" >
          <input type="submit" id="back" value="Back" onclick="<%
          pics.setNext(false);
          %>"/>
          </form>
       
      <form action="asd.jsp" >
       
          <input type="submit" id="next" value="Next" onclick="<%
          pics.setNext(true);
          %>"/>
      </form>
      </body>
      </html>


    И вот такой класс, который просто вычитывает находящиеся файлы в папке и отдает потом путь:

    ExpandedWrap disabled
      public class Pics {
          private final String PATH="webapps/jsproot/pic";
          File [] listOfPics;
          int index;
          boolean next=true;
          public Pics(){
              listOfPics=new File(PATH).listFiles();
          }
          public String nextPic(){
              if(listOfPics!=null){
              return "pic/"+listOfPics[index].getName();
              }
              else return "";
          }
          public void nextIndex(){
              index=(index+1)% listOfPics.length;
          }
       
           public void backIndex(){
              index=(index-1)% listOfPics.length;
          }
          public void setNext(boolean _next){
              next=_next;
          }
          public boolean getNext(){
              return next;
          }
       
      }


    Почему при клике на кнопку "Back" или "Next" boolean next в классе Pics не изменяется? (я проверил)
    В результате абсолютно все равно, на какую кнопку кликать - всегда картинки меняются по возрастающему индексу index...
    Может, я в ПРИНЦИПЕ неправильно делаю?
    Я только начал изучать jsp, поэтому извините, если примитив..
    Сообщение отредактировано: Большой Синий Кит -
      Цитата Большой Синий Кит @
      Почему при клике на кнопку "Back" или "Next" boolean next в классе Pics не изменяется? (я проверил)

      Потому что в обработчике onclick может быть только клиентский javascript, а никак не java-код. Это же html.
        Цитата wind @
        Цитата Большой Синий Кит @
        Почему при клике на кнопку "Back" или "Next" boolean next в классе Pics не изменяется? (я проверил)

        Потому что в обработчике onclick может быть только клиентский javascript, а никак не java-код. Это же html.

        Спасибо! :) Не знал этого...
        Вы не подскажете тогда, как такого рода дело провернуть в jsp - словить событие нажатия кнопки (без javaScript)?
          Вот, почитайте: JSP Tutorial - Beans and Form processing
            Цитата wind @
            Вот, почитайте: JSP Tutorial - Beans and Form processing

            Спасибо! :) Сделал вот так:
            ExpandedWrap disabled
              <?xml version="1.0" ?>
              <jsp:useBean id="pics" class="ua.dp.apple.Pics" scope="session" type="ua.dp.apple.Pics" />
               
              <head>
                  <link rel="stylesheet" type="text/css" href="style.css">
                <!--  <meta http-equiv="refresh" content="5"> -->
                  </head>
              <html>
               
              <body>
               
              <%
                 if(request.getParameter("valueOf")!=null){
                      String result = request.getParameter("valueOf");
                      if(result.equals("next")){
                      pics.nextIndex();}
                      else{
                          pics.backIndex();
                      }
                 }
              %>
                 <img src="<%=pics.nextPic()%>" alt="pic" />
                 <h1><%=pics.nextPic()%> </h1>
               
               
              <form name="method1" method="POST">
                  <INPUT type="hidden" name="valueOf" value="next">
                  <input type="button" id="back" value="Back" onclick="backPic()"/>
                  <input type="button" id="next" value="Next" onclick="nextPic()" />
               
              </form>
                  <SCRIPT LANGUAGE="JavaScript">
                          <!--
                          function nextPic()
                          {
                              document.method1.valueOf.value = "next"
                              method1.submit()
                          }
                          function backPic()
                          {
                              document.method1.valueOf.value = "back"
                              method1.submit()
                          }
                          // -->
                      </SCRIPT>
              </form>
              </body>
              </html>
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0298 ]   [ 14 queries used ]   [ Generated: 18.05.24, 08:46 GMT ]