0

这是我的 AvailLableEvents 线程代码:

    package eventmanagement.util;

    import java.util.List;

    import eventmanagers.Events;

    public class AvailableEvents extends Thread{

    private List<Events>availableEventsList=null;

    public List<Events> getAvailablEventsList() {
      return availableEventsList;
    }
    public void setAvailableEventsList(List<Events> availableEventsList) {
       this.availableEventsList = availableEventsList;
    }

    @Override
    public void run() {
      while(true){
        this.availableEventsList=Events.getAvailableEvents();

         //System.out.println("Executing");
         try {
            Thread.sleep(1000*60*30);//sleep for 30 minutes
           } catch (InterruptedException e) {

              e.printStackTrace();
            }
          }
        }

    }

我创建了一个启动 AvailableEvents 线程的 ServletContextListener:

    package eventmanagement.util;

    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;

    public class EventManagementServletContextListener implements
        ServletContextListener {



    @Override
    public void contextDestroyed(ServletContextEvent arg0) {


    }

    @Override
    public void contextInitialized(ServletContextEvent event) {

         AvailableEvents currentevents=new AvailableEvents();
    currentevents.start();

    event.getServletContext().setAttribute("EVENTS", currentevents);


    }

    }

这是 web.xml 中的侦听器配置:

    <listener>
        <listener-class>
          eventmanagement.util.EventManagementServletContextListener
        </listener-class>
    </listener>

用于访问我的 JSP 中的 ListavailableEvents 的 Struts 标记:

    <s:set name="curEventsThread" value="#application['EVENTS']"></s:set>
        <s:set name="curEventsList" value="#curEventsThread.availableEventsList"/>
        <s:iterator value="#curEventsList">
        <s:property value="eventtitle"/>
    </s:iterator>

eventtitle 是类 Events 的实例变量

我可以通过在 ActionSupport 的任何子类中使用此代码来获得所需的值:

     AvailableEvents ae=(AvailableEvents)ServletActionContext.getServletContext().getAttribute("EVENTS");
    List<Events>ce=ae.getAvailablEventsList();

    for(Events e:ce){
        System.out.println(e.getEventtitle());
    }

如何在 Struts 标签中执行此操作 在此先感谢您提供的任何帮助。


Java 打印:确定正在打印的页面

我有一个print来自类的方法:

public void print(EditorPanePrinter epp) {
    try {
        PrinterJob pj=PrinterJob.getPrinterJob();
        boolean ok = pj.printDialog();
        if(ok) {
            pj.setPageable(epp);
            pj.print();
        }
    } catch (PrinterException e1) {
        e1.printStackTrace();
    }

}

EditorPanePrinter是一个用于打印预览的JEditorPane包装。JPanel有关详细信息,请参见此处

在显示的打印对话框中单击“确定”后,该页面已从打印机正确打印。

对于超过 1 页,尤其是要打印的页面很多,我想显示一个打印页面的对话框:即在打印第一页时“打印第 100 页”,当第二页打印时“打印第 2 页,共 100 页”页面正在打印,等等。

我到处搜索,但没有找到解决方案。这个怎么做?

如果您需要更多信息,请告诉我。

4

1 回答 1

0

最后,我在所有 JSP 中使用 struts 标签得到了结果:

<s:set name="availEvents" value="#application['EVENTS']"/>
    <s:set name="mylist" value="#availEvents.getAvailableEventsList()"/>
      <s:iterator value="mylist">
        <s:property value="eventtitle"/><br/>
      </s:iterator>
于 2014-10-13T12:47:32.860 回答