2013-04-05 2 views
0

Я хочу получить данные и вставить данные в mysql.Как получить данные в jsp из MySQL с помощью Liferay?

I m предоставляет 3 файла одного java-файла и два файла jsp edit.jsp и view.jsp для редактирования и просмотра данных соответственно.

Я создал таблицу, используя ServiceBuilder, я поместил свою portal-ext.properties в папку классов, скажите, что это идеальный метод? m Я делаю это правильно?

Я хочу сначала вставить данные, а затем я хочу получить данные из базы данных.

  1. я м вставки данных через следующий файл JSP - edit.jsp

    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> 
    
    <jsp:useBean class="java.lang.String" id="addNameURL" scope="request" /> 
    <jsp:useBean class="java.lang.String" id="area" scope="request"/> 
    <jsp:useBean class="java.lang.String" id="email" scope="request"/> 
    <jsp:useBean class="java.lang.String" id="subject" scope="request"/> 
    <jsp:useBean class="java.lang.String" id="compnay" scope="request"/> 
    <jsp:useBean class="java.lang.String" id="designation" scope="request"/> 
    
    <portlet:defineObjects /> 
    
    <form id="<portlet:namespace />helloForm" action="<%= addNameURL %>"method="post"> 
        <table> 
         <tr> 
          <td>Subject:</td> 
          <td><input type="text" name="subject"></td> 
         </tr> 
         <tr> 
          <td> 
          Write Your Testimonial 
          </td> 
          <td><textarea name ="area"></textarea> 
          </td> 
         </tr> 
         <tr> 
          <td>Name:</td> 
          <td><input type="text" name="username"></td> 
         </tr> 
         <tr> 
          <td>Email:</td> 
          <td><input type="text" name="email"></td> 
         </tr> 
         <tr> 
          <td>Company:</td> 
          <td><input type="text" name="company"></td> 
         </tr> 
         <tr> 
          <td>Designation:</td> 
          <td><input type="text" name="designation"></td> 
         </tr> 
        </table> 
    
        <input type="submit" id="nameButton" title="Submit" value="Submit"> 
    </form> 
    
  2. Я написал мою вставку логику в следующем файле Java - Testimonial1:

    package com.liferay.portlet; 
    
    import java.io.IOException; 
    import javax.portlet.ActionRequest; 
    import javax.portlet.ActionResponse; 
    import javax.portlet.GenericPortlet; 
    import javax.portlet.PortletException; 
    import javax.portlet.PortletMode; 
    import javax.portlet.PortletPreferences; 
    import javax.portlet.PortletRequestDispatcher; 
    import javax.portlet.PortletURL; 
    import javax.portlet.RenderRequest; 
    import javax.portlet.RenderResponse; 
    import org.apache.commons.logging.Log; 
    import org.apache.commons.logging.LogFactory; 
    import com.liferay.counter.service.CounterLocalServiceUtil; 
    import com.liferay.portal.kernel.exception.SystemException; 
    import com.liferay.portlet.model.testimonial; 
    import com.liferay.portlet.service.testimonialLocalServiceUtil; 
    
    public class Testimonial1 extends GenericPortlet { 
    
        public void init()throws PortletException 
        { 
         editJSP = getInitParameter("edit-jsp"); 
         viewJSP = getInitParameter("view-jsp"); 
        } 
    
        public void doEdit(RenderRequest renderRequest,RenderResponse renderResponse) 
          throws IOException, PortletException 
        { 
         renderResponse.setContentType("text/html"); 
         PortletURL addNameURL = renderResponse.createActionURL(); 
         addNameURL.setParameter("addName", "addName"); 
         renderRequest.setAttribute("addNameURL", addNameURL.toString()); 
         include(editJSP, renderRequest, renderResponse); 
        } 
    
        public void doView(RenderRequest renderRequest,RenderResponse renderResponse)throws 
        IOException, PortletException 
        { 
         PortletPreferences prefs = renderRequest.getPreferences(); 
         String username = (String) prefs.getValue("name", ""); 
         String area=(String)prefs.getValue("area", "testimonial"); 
         String email=(String)prefs.getValue("email", ""); 
         String subject=(String)prefs.getValue("subject", ""); 
         String company=(String)prefs.getValue("company", ""); 
         String designation=(String)prefs.getValue("designation", ""); 
    
        if (username.equalsIgnoreCase ("")) 
        { 
         username = ""; 
        } 
         renderRequest.setAttribute("userName", username); 
         renderRequest.setAttribute("area",area); 
         renderRequest.setAttribute("email",email); 
         renderRequest.setAttribute("subject",subject); 
         renderRequest.setAttribute("designation",designation); 
         renderRequest.setAttribute("company",company); 
    
         include(viewJSP, renderRequest, renderResponse); 
        } 
    
        public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) 
          throws IOException, PortletException 
        { 
         String addName = actionRequest.getParameter("addName"); 
    
         if (addName != null) 
         { 
          PortletPreferences prefs = actionRequest.getPreferences(); 
          prefs.setValue("name", actionRequest.getParameter("username")); 
          prefs.setValue("area",actionRequest.getParameter("area")); 
          prefs.setValue("email",actionRequest.getParameter("email")); 
          prefs.setValue("subject",actionRequest.getParameter("subject")); 
          prefs.setValue("designation",actionRequest.getParameter("designation")); 
          prefs.setValue("company",actionRequest.getParameter("company")); 
    
          prefs.store(); 
    
          testimonial testimonial = null; 
    
          try { 
           testimonialLocalServiceUtil.createtestimonial(CounterLocalServiceUtil.increment()); 
           testimonial.setSubject(actionRequest.getParameter("subject")); 
           testimonial.setArea(actionRequest.getParameter("area")); 
           testimonial.setUsername(actionRequest.getParameter("username")); 
           testimonial.setEmail(actionRequest.getParameter("email")); 
           testimonial.setCompany(actionRequest.getParameter("company")); 
           testimonial.setDesignation(actionRequest.getParameter("designation")); 
           testimonialLocalServiceUtil.addtestimonial(testimonial); 
          } catch (SystemException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
    
          actionResponse.setPortletMode(PortletMode.VIEW);  
         } 
        } 
    
        protected void include(String path, RenderRequest renderRequest, RenderResponse renderResponse) 
          throws IOException, PortletException 
        { 
         PortletRequestDispatcher portletRequestDispatcher = getPortletContext().getRequestDispatcher(path); 
    
         if (portletRequestDispatcher == null) 
         { 
          _log.error(path + " is not a valid include"); 
         } 
         else 
         { 
          portletRequestDispatcher.include(renderRequest, renderResponse); 
         } 
        } 
        protected String editJSP; 
        protected String viewJSP; 
        private static Log _log = LogFactory.getLog(Testimonial1.class); 
    } 
    
  3. я написал моя логика просмотра в следующем файле - view.jsp, и я хочу извлечь данные из базы данных в следующий файл:

    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> 
    
    <jsp:useBean id="subject" class="java.lang.String" scope="request"/> 
    <jsp:useBean id="area" class="java.lang.String" scope="request"/> 
    <jsp:useBean id="userName" class="java.lang.String" scope="request" /> 
    <jsp:useBean id="email" class="java.lang.String" scope="request"/> 
    <jsp:useBean id="company" class="java.lang.String" scope="request"/> 
    <jsp:useBean id="designation" class="java.lang.String" scope="request"/> 
    <portlet:defineObjects /> 
    
    <p>This is the Testimonial portlet......... how are u all ..........</p> 
    
    <p>Subject is ....<%=subject %></p> 
    <p>Testimonial is .....<%=area %></p> 
    <p>Hello <%= userName %>!</p> 
    <p>your Email ......<%=email %></p> 
    <p>your company .....<%=company %></p> 
    <p>You are .......<%=designation %></p> 
    
  4. Мой service.xml файл

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.1.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_1_0.dtd"> 
    
    <service-builder package-path="com.liferay.portlet"> 
        <author>ubuntu</author> 
        <namespace>perception</namespace> 
    
        <entity name="testimonial" local-service="true" remote-service="true"> 
         <column name="subject" type="String"></column> 
         <column name="area" type="String"></column> 
         <column name="username" type="String"></column> 
         <column name="email" type="String"></column> 
         <column name="company" type="String"></column> 
         <column name="designation" type="String"></column> 
        </entity> 
    </service-builder> 
    
  5. Мой portal-ext.properties файл:

    # 
    # MySQL 
    # 
    
    jdbc.default.driverClassName=com.mysql.jdbc.Driver 
    jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEn 
    coding=UTF-8&useFastDateParsing=false 
    jdbc.default.username=root 
    jdbc.default.password=ubuntu123 
    
    schema.run.enabled=true 
    schema.run.minimal=true 
    

Я поставил все мои файлы, теперь, пожалуйста, скажите мне, что я должен сделать для вставка и извлечение данных.

Pls говорит, что я прав в коде ввода? и как извлекать данные из базы данных?

+0

Всегда лучше по возможности правильно отформатировать свой вопрос. так что вы получите максимальный обзор, и становится очень легко понять вопрос. Пожалуйста, позаботьтесь в следующий раз и, если возможно, воспользуйтесь [helpdown] (http://stackoverflow.com/editing-help), чтобы лучше понять, как правильно и красиво отформатировать ваш вопрос. Спасибо –

+3

спасибо за помощь. i m new thats, почему я ошибаюсь. может помочь мне, я получил ошибку в файле jsp, пока я извлекаю свои данные из mySql.List tlist = TestimonialLocalServiceUtil.getTestimonial (0, count); я получил ошибку в списке PLS помочь мне –

+0

Какая ошибка может у вставить ошибку стека-трассировки в вопрос? –

ответ

1

Вы можете взглянуть на строительный сервис liferay.

Если ваши данные не в той же базе данных, как Liferay, вы можете воспользоваться услугой строитель, а

1

Это скорее комментарий, но слишком длинный для этого формата, поэтому я добавляю его в качестве ответа.

Насколько я вижу, существует серьезная ошибка с вашим кодом, не связанная с основным вопросом: вы используете режим просмотра портлета, чтобы показать данные и режим EDIT, чтобы манипулировать им. Это распространенное недоразумение JSR-286, и я научился ненавидеть это именование.

EDIT предназначен для настройки текущего портлета - когда результат операции EDIT является изменением в одной записи базы данных, вы почти всегда использовали неправильный режим портлета. Вам нужно будет использовать режим VIEW (это только режим портлета, не связанный с вашим приложением, чтение или запись данных). Считайте, что режим EDIT по умолчанию доступен только администраторам и обычно используется для изменения PortletPreferences, редко содержимого базы данных (это упрощение, но хорошее эмпирическое правило)

По этой причине Liferay называет режим EDIT " Предпочтения "в пользовательском интерфейсе, и вы, как правило, переходите к нему через контекстное меню портлета (« Настройки », sic!)

+3

привет ... Olaf kock .. PLS скажите мне, как вставить изображение в базу данных с помощью jsp? Я использую этот тег сейчас, pls tell мне что такое код в java-файле? Я не знаю, как вставлять и получать изображение из базы данных. –

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