Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Wicket-具有java子类的可重用面板 我有一个java类: 公共任务{ 私有int-id; 私人公司寄件人; 私人公司接管人; //接二连三 ... }_Forms_Wicket_Panel_Reusability_Subclass - Fatal编程技术网

Forms Wicket-具有java子类的可重用面板 我有一个java类: 公共任务{ 私有int-id; 私人公司寄件人; 私人公司接管人; //接二连三 ... }

Forms Wicket-具有java子类的可重用面板 我有一个java类: 公共任务{ 私有int-id; 私人公司寄件人; 私人公司接管人; //接二连三 ... },forms,wicket,panel,reusability,subclass,Forms,Wicket,Panel,Reusability,Subclass,如您所见,我在task类中还有另外两个自定义类。例如,公司有地址和目录(见下面的屏幕截图) 现在我有一个表格页面,其中有两个部分(发送者和接收者)代表一家公司。我不想为这两个部分分别做两个标记和java代码。有没有办法避免这种重复 只需创建一个面板或片段,将其模型设置为IModel,并在页面中添加两个实例,一个用于发送方,另一个用于接收方 只需创建一个面板或片段,将其模型设置为IModel,并在页面中添加两个实例,一个用于发送方,另一个用于接收方 您可以创建一个公司面板,该面板采

如您所见,我在task类中还有另外两个自定义类。例如,公司有地址和目录(见下面的屏幕截图)

  • 现在我有一个表格页面,其中有两个部分(发送者和接收者)代表一家公司。我不想为这两个部分分别做两个标记和java代码。有没有办法避免这种重复

    只需创建一个面板或片段,将其模型设置为
    IModel
    ,并在页面中添加两个实例,一个用于
    发送方
    ,另一个用于
    接收方


    只需创建一个面板或片段,将其模型设置为
    IModel
    ,并在页面中添加两个实例,一个用于
    发送方
    ,另一个用于
    接收方


    您可以创建一个
    公司面板
    ,该面板采用
    IModel
    。您可以在任务类上使用PropertyModel来获得一个
    PropertyModel sender=新建PropertyModel(myTask,“sender”)
    。然后,面板可以有两个文本字段,您可以在传递的IModel上使用CompoundPropertyModel

    在表单上重复使用此面板两次

    关于公司面板

    公共类公司面板扩展面板
    {
    上市公司面板(字符串id,IModel模型)
    {
    super(id,新的CompoundPropertyModel(model));
    添加(新文本字段(“地址”);
    添加(新文本字段(“目录”);
    }
    }
    

    在文档中查找CompoundPropertyModel。它非常有用。

    您可以创建一个
    CompanyPanel
    ,它采用
    IModel
    。您可以在任务类上使用PropertyModel来获得一个
    PropertyModel sender=新建PropertyModel(myTask,“sender”)
    。然后,面板可以有两个文本字段,您可以在传递的IModel上使用CompoundPropertyModel

    在表单上重复使用此面板两次

    关于公司面板

    公共类公司面板扩展面板
    {
    上市公司面板(字符串id,IModel模型)
    {
    super(id,新的CompoundPropertyModel(model));
    添加(新文本字段(“地址”);
    添加(新文本字段(“目录”);
    }
    }
    

    在文档中查找CompoundPropertyModel。它非常有用。

    制作一个面板,用于编辑
    公司
    类,并将两个具有不同
    模型的实例放入TaskPanel

    公共类任务面板扩展面板{
    公共任务面板(字符串id,IModel模型){
    超级(id,型号);
    添加(新公司面板(“senderCompanyPanel”,新属性模型(“sender”));
    新增(新公司面板(“接收者公司面板”,新财产模型(“接收者”));
    ...
    }
    }
    
    制作一个面板,用于编辑
    公司
    类,并将其具有不同
    模型的两个实例放入TaskPanel

    公共类任务面板扩展面板{
    公共任务面板(字符串id,IModel模型){
    超级(id,型号);
    添加(新公司面板(“senderCompanyPanel”,新属性模型(“sender”));
    新增(新公司面板(“接收者公司面板”,新财产模型(“接收者”));
    ...
    }
    }
    
    hmm好的。。所以我给我的CompanyPanel 2个参数CompanyPanel(字符串id,IModel模型){…}。然后我可以使用这个模型。但是,在CompanyPanel中应该如何准确地声明TextField呢?现在我有了final TextField address=new TextField(“address”,新属性模型(model.getObject(),“address”);那么为什么要使用额外的compoundPropertyModel呢?你能举个简单的例子吗…嗯。。。似乎它没有设置值:(.我设置了模型和所有内容,但他给了我一个NullPointerException,公司地址没有设置。在任务页面中,我按照你说的做了:CompanyPanel sender=new CompanyPanel(“senderPanel”,new PropertyModel(“任务”,“发件人”);CompanyPanel receiver=new CompanyPanel(“receiver Panel”),新属性模型(task,“receiver”);我想使用默认值。我之前做过:task.setSender(…)设置初始默认公司。可能是因为这个原因?我使用下拉列表来设置默认值。我现在如何使用面板?Dave,最好阅读更多关于模型以及它们如何与组件一起工作的内容。默认值可以通过传递正确的默认公司来提供。嗯,好的..因此我给我的公司面板2个参数CompanyPanel(字符串id,IModel model){…}。然后我可以使用该模型。但是在CompanyPanel中应该如何准确地声明TextField?现在我有了最终的TextField Address=新的TextField(“Address”,新的PropertyModel(model.getObject(),“Address”));那么为什么要使用一个额外的compoundPropertyModel呢?你能举个简单的例子吗……嗯……似乎它没有设置值:(.我设置了模型和所有东西,但他给了我一个NullPointerException,公司地址没有设置。在任务页面中,我按照你说的做了:CompanyPanel sender=new CompanyPanel(“senderPanel”),新属性模型(任务,“发件人”);CompanyPanel receiver=new CompanyPanel(“receiverPanel”,新属性模型(任务,“收件人”);我想使用默认值。我之前使用过:task.setSender(…)设置初始默认公司。可能是因为这个原因?我正在使用下拉列表设置默认值。我现在如何使用面板进行设置?Dave,最好阅读更多关于模型以及它们如何与组件一起工作的内容。只需传递正确的默认公司即可提供默认值。可能重复的否,其不同…这里我只使用未被继承的子类。不可能重复,它不同…这里我只使用未被继承的子类