java - 如何使用Liferay从MySQL检索jsp中的数据?

标签 java mysql eclipse jsp liferay

我想从mysql中检索数据并向其中插入数据。

我提供了3个文件,一个java文件和两个jsp文件edit.jspview.jsp分别用于编辑和查看数据。

我已经使用ServiceBuilder创建了表,我已将portal-ext.properties放在classes文件夹中,请告诉我这是完美的方法吗?我的做法正确吗?

我想先插入数据,然后从数据库中检索数据。

  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 逻辑 - 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
    

我已经放置了所有文件,现在请告诉我如何进行数据插入和检索。

请告诉我插入代码是否正确?以及如何从数据库中检索数据?

最佳答案

你可以看看liferay的服务构建器。

如果您的数据与liferay不在同一个数据库中,您仍然可以使用服务构建器

关于java - 如何使用Liferay从MySQL检索jsp中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15828004/

相关文章:

java - "transient"构建或触发特定构建器

多个平台的 Eclipse RCP : build. 属性

java - 在 Dalvik 运行时设备上运行 Espresso 仪器测试的问题

php - 使用jquery没有结果

javascript - 为什么 req.body 对我来说总是未定义

eclipse - 如何从一个 Eclipse RAP 入口点访问另一个入口点?

java - 使用 Hibernate 和 mySQL 更新具有主键和唯一列的表

java - Java中的静态变量

java - 使用 JNA 时 Mac 和 Windows 之间的 FTDI 库平台差异

mysql - 将所有不存在的记录统计到其他表 - SQL 查询