小编Ale*_*x D的帖子

sqlalchemy动态映射

我有以下问题:

我上课了:


class Word(object):

    def __init__(self):
        self.id = None
        self.columns = {}

    def __str__(self):
        return "(%s, %s)" % (str(self.id), str(self.columns))
Run Code Online (Sandbox Code Playgroud)

self.columns是一个dict,它将保存(columnName:columnValue)值.列的名称在运行时是已知的,例如,它们被加载到wordColumns列表中


wordColumns = ['english', 'korean', 'romanian']
Run Code Online (Sandbox Code Playgroud)

wordTable = Table('word', metadata,
                  Column('id', Integer, primary_key = True)
                  )
for columnName in wordColumns:
    wordTable.append_column(Column(columnName, String(255), nullable = False))
Run Code Online (Sandbox Code Playgroud)

我甚至创建了一个显式映射器属性来"强制"表格列映射到word.columns [columnName],而不是word.columnName,我没有得到任何映射错误,但它似乎不起作用.


mapperProperties = {}
for column in wordColumns:
    mapperProperties['columns[\'%']' % column] = wordTable.columns[column]

mapper(Word, wordTable, mapperProperties)
Run Code Online (Sandbox Code Playgroud)

当我加载一个单词对象时,SQLAlchemy创建一个具有word.columns ['english'],word.columns ['korean']等属性的对象,而不是将它们加载到word.columns dict中.因此,对于每个列,它会创建一个新属性.而且word.columns字典甚至不存在.

同样,当我尝试坚持一个单词时,SQLAlchemy希望在名为word.columns ['english'](字符串类型)的属性中找到列值,而不是字典word.columns.

我不得不说我对Python和SQLAlchemy的经验非常有限,也许我不可能做我想做的事情.

任何帮助,赞赏,

提前致谢.

python sqlalchemy

12
推荐指数
1
解决办法
1万
查看次数

使用maven gwt插件运行GWTTestCase时出错

我已经创建了一个扩展GWTTestCase的测试,但是我收到了这个错误:

mvn integration-test gwt:test
...
Running com.myproject.test.ui.GwtTestMyFirstTestCase
Translatable source found in...                       
[WARN] No source path entries; expect subsequent failures
[ERROR] Unable to find type 'java.lang.Object'
[ERROR] Hint: Check that your module inherits 'com.google.gwt.core.Core' either directly or indirectly (most often by inheriting module 'com.google.gwt.user.User')
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.1 sec <<< FAILURE!
Run Code Online (Sandbox Code Playgroud)

GwtTestMyFirstTestCase.java位于/ src/test/java中,而GWT模块位于src/main/java中.我认为这应该不是问题.

我已根据http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html完成了所有要求,当然我的gwt模块已经间接地有com.google.gwt.core.Core进口.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myproject</groupId>
<artifactId>main</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Main Module</name>

<properties>
    <gwt.module>com.myproject.MainModule</gwt.module>
</properties>

<parent>
    <groupId>com.myproject</groupId> …
Run Code Online (Sandbox Code Playgroud)

java gwt maven-2 unit-testing

10
推荐指数
3
解决办法
6248
查看次数

spring 2.5 jstl查看错误

我有以下控制器


@Controller
@RequestMapping("/project/view.html")
public class ProjectViewController {

 private static final String viewName = "projectView";


 @RequestMapping(method = RequestMethod.GET)
 public String showPage(Model model,
   @RequestParam(value="id",required=false) Long id) {

  //code.....

  return viewName;
 }

}
Run Code Online (Sandbox Code Playgroud)

我的views.properties包含


projectView.(class)=org.springframework.web.servlet.view.JstlView
projectView.url=/WEB-INF/jsp/project/view.jsp
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.

但我需要更改方法以返回View(),因为如果出现故障,我必须将RedirectView()返回到某个错误页面.所以我把方法改为:


@Controller
@RequestMapping("/project/view.html")
public class ProjectViewController {

 private static final String viewName = "projectView";


 @RequestMapping(method = RequestMethod.GET)
 public View showPage(Model model,
   @RequestParam(value="id",required=false) Long id) {

  //code.....

  return new JstlView(viewName);
 }

}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我得到一个NPE:


java.lang.NullPointerException
 at org.springframework.web.context.support.WebApplicationObjectSupport.getServletContext(WebApplicationObjectSupport.java:121)
 at org.springframework.web.servlet.view.JstlView.exposeHelpers(JstlView.java:133)
 at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
 at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
 at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
 at …
Run Code Online (Sandbox Code Playgroud)

java spring frameworks

3
推荐指数
1
解决办法
2651
查看次数

返回ModelAndView时不呈现视图

我有以下问题.我需要在控制器中导出PDF

下面的代码,我返回一个视图,按预期工作.


@RequestMapping(method = RequestMethod.GET)
    public View exportReport(
            @RequestParam(value = "userName", required = true) String userName,
            @RequestParam(value = "startDate", required = true) Date startDate,
            @RequestParam(value = "endDate", required = true) Date endDate) {


                ///////////////////////////////////////////

        return new TimeSheetReportPdfView();
    }
Run Code Online (Sandbox Code Playgroud)

如果我更改方法以返回ModelAndView会发生此问题:


@RequestMapping(method = RequestMethod.GET)
    public ModelAndView exportReport(
            @RequestParam(value = "userName", required = true) String userName,
            @RequestParam(value = "startDate", required = true) Date startDate,
            @RequestParam(value = "endDate", required = true) Date endDate) {


                ///////////////////////////////////////////

        return new ModelAndView(new TimeSheetReportPdfView(), model);
    }
Run Code Online (Sandbox Code Playgroud)

现在,PDF没有导出,我得到的只是一个空白页面而且日志中没有任何内容.

更新:


public …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

3
推荐指数
1
解决办法
1599
查看次数

Android重试/取消对话框

我有以下问题.我的主要活动包括一个ListView,其中填充了从Web服务获得的数据.首次加载主活动时,如果无法从Web检索数据,我想显示一个带有2个按钮的对话框,"重试"和"取消".如果用户单击"回复",则调用重新加载数据方法,如果有任何异常,则该对话框应再次出现.

我还没有找到一种方法来实现我想要的行为.

@Override
protected void onResume() {
   super.onResume();
   Log.i("ItemListActivity", "onResume()");
   if(isNewInstance) {
      reloadItems();
      isNewInstance = false;
   }
}

private void reloadItems() {

   try {
       itemService.reloadItems();
       items = itemService.getItemList();
       listAdapter.notifyDataSetChanged();  
   } catch (Exception e) {
       showDialog(RETRY_DIALOG);                
   }

}

protected Dialog onCreateDialog(int id) {
   switch(id) {
      case RETRY_DIALOG:
         return new AlertDialog.Builder(this).setTitle(R.string.retryDialog_title)
         .setPositiveButton(R.string.retryDialog_retry, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    reloadItems();
                }


            })
            .setNegativeButton(R.string.retryDialog_quit, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
            })
            .create(); …
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
2442
查看次数